質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

1024閲覧

CakePHPで別々のテーブルを参照、編集がしたいです

Tarosimmon

総合スコア7

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2018/03/31 22:34

CakePHPで、学年ごとに編集画面を分岐させるページを作りたいと考えております。
例: Aさん→first_grades (1学年のテーブルに所属)
Bさん→second_grades (2学年のテーブルに所属)
〜gradesのテーブルにそれぞれがいます。

それぞれの学年ごとにリストを表示させ、各レコードの最後に「詳細」リンクを付けて推移させ、そこでは学年のテーブルのカラム全ての内容を表示させ、その人の登録内容を編集させたいと考えております。
student/index.ctpで一覧→student/edit.ctpで編集という感じです。
コントローラー(StudentController.php)、モデル(student.php)は1つのもので行おうと考えております。
また、テーブルは生徒一覧テーブルは無く、学年ごとのテーブルをモデルのSQLにUNIONで繋げて一覧を作成しています。
(前に情報を少しかじっていた人が作って、index画面だけ作り、そのままにしてしまったので、現状のまま作成したいと考えております。)

環境はMySQL 5系、CakePHP 2系、PHPが5.7だったと思います。

そこで質問があります。

  1. 1つのコントローラーで、複数のテーブルを扱う場合、コントローラーにusesで使用するテーブル名を書くというのを学びましたが、それ以外にやるべき事はあるのでしょうか。

  2. 一覧部分の各レコードにある「詳細」を押した時に、学年のテーブルを特定させて、そこに推移させたいと考えております。

その場合、読み込みをさせる場合はどのような記述を書いてあげるべきなのでしょうか。
一覧からは、idと学年(1、2など)で推移させたいと思います。

  1. それを登録させる時についてですが、登録させる時の記述は、コントローラーとテーブル名が全く違う場合はどのようにすればよろしいでしょうか。

コントローラー、モデル、テーブル名が今までは同じものしか扱ったことが無く、どのように作るべきかわからずにおります。

出先の為曖昧な質問となってしまい、申し訳ありませんが、ご教授いただけないでしょうか。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/01 01:33

テーブル構成が作り直せるものなら作り直したものの方がいいきがするな・・・
Tarosimmon

2018/04/01 02:16

ご回答ありがとうございます。 以前作成していた者が現在連絡出来ず、もし、可能でしたら現状だとどのように出来るか教えていただいてもよろしいでしょうか。 元々がおかしいのかも知れませんが、もし可能でしたらご回答いただけないでしょうか。申し訳ありませんが、よろしくお願いいたします。
guest

回答1

0

ベストアンサー

現状のまま作成したいとのことですが、やはり、生徒を students テーブル1つにまとめるのが、結局一番近道だと思います。

students テーブルさえあれば、ある程度まではBakeでコード生成できます。

学年毎のテーブルのままですと、今後、学年が変わる度に全レコードをテーブル間で移動しなければいけなくなり、データもプログラムもメンテナンスしずらくなりそうです。

投稿2018/04/09 04:42

編集2018/04/09 04:43
Lulucom

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tarosimmon

2018/04/09 12:35

ご回答ありがとうございます! やはり、テーブルの構成自体に問題があるんですね… 作成者に提案して、studentsテーブルから作成させるようにします。 この度はありがとうございました。
Lulucom

2018/04/09 12:40

評価ありがとうございます。 データモデルに問題があると後の工程に影響がありますので一番重要なところですね。 今後のメンテナンスのことも考えてうまく設計しましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問