我有以下模型关联:
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
的验证规则。保存操作已完成,但未创建类别。
答案 0 :(得分:1)
在控制器中,您需要先保存类别,获取插入的ID并在问题中分配给category_id,然后就问题和答案使用saveAll。
答案 1 :(得分:0)
如果问题属于类别,你可能有一个Question.category_id字段...那个应该用于在选择框中选择类别(至少,这就是我认为你希望它工作的方式)。你现在试图实现这个目标的方式对Cake来说没有意义。