大家好。我这辈子似乎都无法让这个该死的saveall()
功能发挥作用。我告诉过它很神奇,但我一定没有足够的中氯素或任何花哨的东西来让它闪闪发光。
所以我有四个不同的表——问题、评论、员工和答案。问题有很多答案,答案有一个评论。答案属于员工。这是我的模型中设置的内容:
答案模型
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 数组,使其键从零开始,增量为一(即array(0=>array(),1=>array(),2=>array());
等),这消除了验证错误,但数据仍然没有保存。