php - CakePHP - 如何更新多条记录

标签 php cakephp

如何在 CakePHP 中更新多个记录的单个字段?

我使用 $this->Item->find('all') 检索多条记录,我需要为每条记录设置不同的值并保存。我愿意

$items = $this->Item->find('all', array(
    'fields' => array('Item.id', 'Item.order'),
    'conditions'=> array(
        'Item.project_id =' => $this->request->params['project_id'],
    ),
    'order' => array ('Item.order ASC')
));

foreach($items as $key => $item) {
    $item->saveField('Item.order', rand(1, 10));
}

但是它会报错

Fatal error: Call to a member function saveField() on a non-object

我做错了什么?

最佳答案

我会说你应该使用 CakePHP Save Many以提高性能。

例如:

$data = array(
    array( 'Item' => array('id' => 2, 'order' => rand(1,5)) ),
    array( 'Item' => array('id' => 3, 'order' => rand(1,5)) ),
);
$Model->saveMany($data, array('deep' => true));

关于php - CakePHP - 如何更新多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885116/

相关文章:

validation - CakePHP Model->invalidate 不显示错误

cakephp - 如何最小化 CakePHP 中的 'contain' 查询?

php - 如何在 PHP 中定义 X509 证书的特定用途

javascript - 如何在 PHP 中访问我的 Javascript 变量?

php - 使用 C API 自动插入 Mysql

phpseclib loadKey 适用于 mac,不适用于 CentOS

css - Cakephp 3 - radio 输入标签的自定义类

cakephp - 如果主键不是 'id' ,如何删除记录? (CakePHP 2.x)

javascript - js .html() 通知窗口在第一次成功触发后消失

url - CakePHP 绝对图像 URL