我有一个评论&评级页面。查看产品后,客户可以给予评审和评级。 我的controller / review.ctp代码是这样的:
public function review($prod_id = NULL)
{
if($this->request->is('post')) {
$this->Product->updateAll(array(
'Product.rating' => "'".$this->request->data['Product']['rating']."'",
'Product.review' => "'".$this->request->data['Product']['review']."'",
array('conditions'=>array(
'prod_id' => $prod_id))
));
$this->Session->setFlash("Thanks for your feedback !!!");
}
}
但是在执行上面的代码时我得到了:
Notice (8): Array to string conversion [CORE\Cake\Model\Datasource\DboSource.php, line 2094]
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Array' in 'field list'
SQL Query: UPDATE `cakephp`.`products` AS `Product` SET `Product`.`rating` = '4', `Product`.`review` = 'abcd', `Product`.`id` = Array WHERE 1 = 1
我没有得到什么问题。 任何帮助都感激不尽。 在期待中感谢
答案 0 :(得分:0)
您遇到的查询不正确,请尝试以下操作: -
$this->Product->updateAll(array('Product.rating' => "'".$this->request->data['Product']['rating']."'",'Product.review' => "'".$this->request->data['Product']['review']."'"),array('conditions'=>array('Product.id' => $prod_id)));
注意: - 第一个数组的)
放错了位置。它必须在condition
数组之前关闭。
将condition
而不是Product.id
。