2012-01-24 15 views
0

私は2つのCakePHPモデル、テストと質問を持っています。テストには多くの質問があり、質問には1つのテストしかありません。CakePHP Automagic Form Helper with Associations

このコードのいずれも:

echo $form->create("Question", array('action' => 'add')); 
echo $form->input("text"); 
echo $form->input("Test.id", array('value' => $test['Test']['id'] , 'type' => 'hidden')); 
echo $form->end("Add"); 

NOR:テストと

echo $form->create("Question", array('action' => 'add')); 
echo $form->input("text"); 
echo $form->input("Question.Test.id", array('value' => $test['Test']['id'] , 'type' => 'hidden')); 
echo $form->end("Add"); 

仲間新しい質問(しかし、それをデータベースに作成しません)。

$ test ['Test'] ['id']は正しいIDの出力を生成します。

アシスタンスありがとうございます。

答えて

1

あなたはhasOnehasMany団体との2つのモデル(あなたはまだそれを行っていない場合)、テーブルquestionstest_idという列(つまりはFOREIGNKEYという名前です)を作成するそう関連付ける必要があります。

質問の形式は、次のようになります。

echo $form->create("Question", array('action' => 'add')); 
echo $form->input("text"); 
echo $form->input("Question.test_id", array('value' => $test['Test']['id'] , 'type' => 'hidden')); 
echo $form->end("Add"); 
+1

私はすでに(hasOne/hasManyを使って)関連付けを行っていましたが、将来の問題を持つ人にとっては便利なように注意してくれてありがとう! – mctedo

1

あなたの名前はオフです。代わりに隠しフィールドQuestion.test_idを呼び出す必要があります。これは、値が保存されるフィールドです。たとえば:

$this->Form->input('Question.test_id', array('type' => 'hidden', 'value' => $test['Test']['id'])); 
0

私はこの質問が古いであることを知っているが、CakePHPの3の答えを探している私のようにここに来た人のために、入力のための命名規則関連付けが変更されています、 BelongsTo/HasOneアソシエーションの場合はtable.field、HasMany/BelongsToManyアソシエーションの場合はtables.fieldとなります。

詳細はthe docsをご覧ください。