【问题标题】:Saving belongsTo models Cakephp保存属于模型 Cakephp
【发布时间】:2011-08-12 11:53:46
【问题描述】:

我有以下模型关联:

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

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

我的表格:

<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 的验证规则。保存操作已完成,但未创建类别。

【问题讨论】:

  • 检查您的Category.id 验证规则中没有'required' =&gt; true
  • yeap.. 设置为 false... 并且规则只是数字
  • 我在想也许我只能创建 hasMany 模型,但不能创建 belongsTo 模型,但我不确定

标签: cakephp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这个字段不在我的表单中。但我也在想同样的事情......因为必须选择而不是创建关系类别......但是有没有办法解决这个问题?
    • 我误读了您要执行的操作...另外一个不错的功能是包含所有当前类别的普通选择 (category_id) 和 Ajax 操作输入,您可以通过该输入在飞,不要忘记在 Ajax 请求之后更新选择,以便它包含新类别。
    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 2012-04-24
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    相关资源
    最近更新 更多