こんにちは。私の人生では、この爆破されsaveall()
た機能を機能させることはできないようです。私はそれが魔法だと言いましたが、火花を散らすのに必要なミディクロリアンやどんな派手なものも十分に持っていてはいけません。
したがって、質問、コメント、従業員、および回答という 4 つの異なるテーブルがあります。質問には多くの回答があり、回答には 1 つのコメントがあります。回答は従業員に属します。私のモデルで設定されているものは次のとおりです。
回答モデル
var $hasOne = array(
'Comment' => array(
'className' => 'Comment',
'foreignKey' => 'answer_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
var $belongsTo = array(
'Question' => array(
'className' => 'Question',
'foreignKey' => 'question_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Employee' => array(
'className' => 'Employee',
'foreignKey' => 'employee_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
コメント モデル
var $validate = array(
'answer_id' => array(
'numeric' => array(
'rule' => array('numeric'),
),
),
);
var $belongsTo = array(
'Answer' => array(
'className' => 'Answer',
'foreignKey' => 'answer_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
データを実行するsaveall()
と、コメントの answer_id が数値ではないというエラーが表示されます。これが、保存しようとしているデータツリーの設定です(次を使用$this->Answer->saveall($this->data);
:
[Answer] => Array
(
[1] => Array
(
[question_id] => 1
[employee_id] => 14
[result] => 7
[unique_hash] => t9279kn7vh
)
[3] => Array
(
[question_id] => 3
[employee_id] => 14
[result] => 6
[unique_hash] => t9279kn7vh
)
[4] => Array
(
[question_id] => 4
[employee_id] => 14
[result] => 3
[unique_hash] => t9279kn7vh
)
[5] => Array
(
[question_id] => 5
[employee_id] => 14
[result] => 2
[unique_hash] => t9279kn7vh
)
[6] => Array
(
[question_id] => 6
[employee_id] => 14
[result] => 7
[unique_hash] => t9279kn7vh
)
)
[Comment] => Array
(
[1] => Array
(
[user_id] => 14
[text] => test1
)
[3] => Array
(
[user_id] => 14
[text] => test2
)
[4] => Array
(
[user_id] => 14
[text] => test3
)
[5] => Array
(
[user_id] => 14
[text] => test4
)
[6] => Array
(
[user_id] => 14
[text] => test5
)
)
ここで何が問題なのかを理解するのを手伝ってくれる人はいますか? 助けてくれてありがとう。
編集: $data 配列を更新して、キーがゼロから始まり、1 ずつ増加するようにしました (つまり、array(0=>array(),1=>array(),2=>array());
など)。これにより、検証エラーはなくなりましたが、データはまだ保存されていません。