2011-08-12 9 views
0

I持って次のモデル団体:保存belongsToのモデルCakePHPの

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の検証ルールを削除してみました。保存操作は完了しましたが、カテゴリは作成されませんでした。

+0

あなたの 'Category.id'検証ルールには' 'required '=> true'がないことを確認してください。 – deizel

+0

yeap ... falseに設定...とルールは、私は多分私だけhasManyのモデルではなく、belongsToのモデルを作成することができることを考えていた – AlexBrand

+0

だけの数値であるが、私は – AlexBrand

答えて

1

、あなたは、あなたが質問と回答にSAVEALLを使用することができ、最初のカテゴリを保存することを挿入IDを取得し、質問にCATEGORY_IDに割り当てる必要があります。

0

Question belongsToカテゴリがある場合は、おそらくQuestion.category_idフィールドがあります。選択ボックスでカテゴリを選択するために使用する必要があります(少なくとも、それが動作すると思う方法です)。あなたが今これを達成しようとしている方法は、ケーキには意味がありません。コントローラで

+0

は、まあ、そのフィールドは、私のフォームではありませんか分かりません。しかし、私は同じことを考えていた...関係カテゴリのために選択され、作成されていない...しかし、これを回避する方法はありますか? – AlexBrand

+1

あなたがやろうとしていることを間違って読みました...また、現在のすべてのカテゴリとAjaxで操作される入力を含む通常のselect(category_id)が素早くカテゴリを追加できます。 Ajaxリクエストの後にselectを更新して、新しいカテゴリを含むようにします。 –

関連する問題