2012-01-24 40 views
0

我有兩個型號的CakePHP,測試和問題,其中一個測試有許多問題,一個問題只有一個測試。CakePHP的AUTOMAGIC形式傭工協會

無論此代碼:

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"); 

也不:

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"); 

同夥與測試的新問題(但在數據庫中創建它)。

$測試[ '測試'] [ 'ID']確實產生ID的正確的輸出。

協助理解。

回答

1

你應該聯想與hasOnehasMany協會(如果你還沒有這麼做過)兩款車型,並由此創建的表questions一列名爲test_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獲取更多信息。