2012-01-24 38 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获取更多信息。