这句错误是什么意思?Call to a member function where() on integer

本来是想写一个修改数据的语句,但是看来yii上面的修改好像不一样啊(我是小白请指教)
图片描述

图片描述

阅读 9.6k
8 个回答
// 条件
$condition = [
    'id' => $id,
];
// 数据
$data = [
    'uid' = $uid,
];
$result = self::updateAll($data, $condition);

说明update()方法返回的类型是个integer,即整形。而整形数据不是一个对象,所以不能以“->where()”方式来调用where()方法。
问题在于update()方法没有按照期望的方式返回一个对象类型数据。

意思是你在一个int类型的值上使用的where()方法

也就是说你的update()方法返回值是个integer

yii应该是$model::find()->where()->all()后再Update

你先看看update的返回值.

update返回的是影响行的数量,不是直接用链式操作进行查询
最好是更新完毕之后再用
self::where()

update 影响数据,所以有返回值(看结果是int)

所以正确的做法是把 update 扔到最后执行

谢谢大家,问题已经解决了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题