数组到字符串转换[CORE \ Cake \ Model \ Datasource \ DboSource.php,第2094行]

时间:2015-05-31 20:43:00

标签: php cakephp

我有一个评论&评级页面。查看产品后,客户可以给予评审和评级。 我的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

我没有得到什么问题。 任何帮助都感激不尽。 在期待中感谢

1 个答案:

答案 0 :(得分:0)

您遇到的查询不正确,请尝试以下操作: -

$this->Product->updateAll(array('Product.rating' => "'".$this->request->data['Product']['rating']."'",'Product.review' => "'".$this->request->data['Product']['review']."'"),array('conditions'=>array('Pr‌​oduct.id' => $prod_id)));

注意: - 第一个数组的)放错了位置。它必须在condition数组之前关闭。

<{1>}数组中的

condition而不是Product.id