我正在使用cake 2.0.6并且我试图保存多个记录,这些记录是我从表单输出数据的产品;
我无法保存这两个记录,我的表单中的字段设置为; 0是它应该保存的第一条记录。由于某种原因,它不会保存2条记录。我已关闭产品型号的所有验证,并且没有presave方法
任何想法都错了吗?
<input name="data[Product][0][product_code]"/>
<input name="data[Product][0][colour]"/>
<input name="data[Product][0][lead_time_weeks]"/>
<input name="data[Product][0][description]"/>
<input name="data[Product][0][height]" />
<input name="data[Product][0][width]" />
<input name="data[Product][0][depth]" />
<input name="data[Product][0][price]" />
<input name="data[Product][0][discount]" />
<input name="data[Product][0][discounted_price]" />
<input name="data[Product][0][quantity]"/>
<input name="data[Product][1][product_code]"/>
<input name="data[Product][1][colour]"/>
<input name="data[Product][1][lead_time_weeks]"/>
<input name="data[Product][1][description]"/>
<input name="data[Product][1][height]" />
<input name="data[Product][1][width]" />
<input name="data[Product][1][depth]" />
<input name="data[Product][1][price]" />
<input name="data[Product][1][discount]" />
<input name="data[Product][1][discounted_price]" />
<input name="data[Product][1][quantity]"/>
Array
(
[Product] => Array
(
[0] => Array
(
[product_code] => fgfgf
[colour] =>
[lead_time_weeks] =>
[description] =>
[height] => 11111
[width] => 22222
[depth] =>
[price] =>
[discount] => 50
[discounted_price] =>
[quantity] =>
)
[1] => Array
(
[product_code] => fgfgf
[colour] =>
[lead_time_weeks] =>
[description] =>
[height] => 123
[width] => 123
[depth] =>
[price] =>
[discount] => 50
[discounted_price] =>
[quantity] =>
)
)
)
编辑: 解决方案供将来参考; 像这样调用save方法;
$这 - &GT;制品 - &GT;白水($这 - &GT;请求 - &GT;数据[ '产品']
答案 0 :(得分:5)
你如何致电saveAll
?常见的错误是将其称为
$this->Product->saveAll($data);
你应该像
那样做$this->Product->saveAll($data['Product']);
必须在没有Model键的情况下对其进行数字索引
根据文档: https://book.cakephp.org/2.0/en/models/saving-your-data.html
请注意,我们传递$ data ['Article']而不是通常的$ data。什么时候 保存记录数组应该是同一模型的多个记录 只是在没有模型键的情况下进行数字索引。