最近PHPおよびCakePHPを学習し始めた初心者です。
CakePHPにおいて、テーブルにauto_incrementのidフィールドではなく、任意のprimary_keyを設定することができるのでしょうか?
顧客コード番号や商品コード番号などを登録し、それらのコード番号を使ってテーブルを連結したいのですが、方法がわかりません。
顧客テーブル
|c_cd|c_name|
|1111|aaaaaa|
|2222|bbbbbb|
商品テーブル
|i_cd|i_name|c_cd|
|a001|book_a|1111|
|b002|book_b|2222|
このようなテーブルがあった場合、次のようなviewが欲しいのですが、
商品view
|i_cd|i_name|c_cd|c_name|
|a001|book_a|1111|aaaaaa|
|b002|book_b|2222|bbbbbb|
各テーブルにidフィールドを作成すれば、それぞれのadd、edit等の処理は問題なく動作します。
ところがidフィールドでは、テーブルを連結することができず、viewの$this->Form->input('id')でも表示されない場合があります。
任意のprimary_keyを指定しても、CakePHPが作成したSQLにはxxx_idが使用されてエラーとなります。
そもそもidというフィールドが必須なのかも分かりません。
上記のように任意のコード番号で管理しているケースは多いと思うのですが、検索しても的確なサンプルを見つけることができません。
どのようなテーブルを作成し、Model、Controller、Viewを作れば、上記の商品viewのような結果を得られるのか教えていただけませんか?
言葉足らずで質問の意図が充分に伝わっているかわかりませんが、どうかよろしくお願いします。
CakePHP 2.5.8
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/03/19 12:17