保存belongsTo模型Cakephp

时间:2011-08-12 11:53:47

标签: cakephp

我有以下模型关联:

Question belongsTo Category
Category hasMany Question
Question hasMany Answer
Answer belongsTo Question

我希望能够在创建问题时创建新类别,但我收到Category.id验证错误,即使我没有在Category.id中设置$this->data数组。我以相同的形式成功创建了新答案,但未创建类别。

我的表格:

<h3>Create multiple choice question</h3>
<?php

echo $this->Form->create('Question', array('action' => 'addmc'));
echo $this->Form->input('Question.name');
echo $this->Form->input('Question.questiontext', array('label' => 'Question Text (What students will see)'));
echo $this->Form->input('Question.generalfeedback', array('label' => 'General feedback (Feedback student will see when reviewing question)'));

for ($i = 0; $i < 4; $i++) {
    echo $this->Form->input('Answer.'.$i.'.answer', array('label' => 'Answer ' . ($i+1)));
    echo $this->Form->input('Answer.'.$i.'.score', array('label' => 'Score (Number from 0 to 100)'));
}
echo $this->Form->input('Category.0.name', array('label' => 'Category'));
echo $this->Form->button('Save question', array('class' => 'form'));
echo $this->Form->end();

?>

我在控制器中使用saveAll。我尝试删除Category.id的验证规则。保存操作已完成,但未创建类别。

2 个答案:

答案 0 :(得分:1)

在控制器中,您需要先保存类别,获取插入的ID并在问题中分配给category_id,然后就问题和答案使用saveAll。

答案 1 :(得分:0)

如果问题属于类别,你可能有一个Question.category_id字段...那个应该用于在选择框中选择类别(至少,这就是我认为你希望它工作的方式)。你现在试图实现这个目标的方式对Cake来说没有意义。