为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
米琪卡哇伊 2019-03-08 05:12:25
本来是想写一个修改数据的语句,但是看来yii上面的修改好像不一样啊(我是小白请指教)
查看完整描述

8 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

// 条件
$condition = [
    'id' => $id,
];
// 数据
$data = [
    'uid' = $uid,
];
$result = self::updateAll($data, $condition);
查看完整回答
反对 回复 2019-03-18
?
精慕HU

TA贡献1845条经验 获得超8个赞

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

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

查看完整回答
反对 回复 2019-03-18
?
森林海

TA贡献2011条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-03-18
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

你先看看update的返回值.

查看完整回答
反对 回复 2019-03-18
?
慕标5832272

TA贡献1966条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-18
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-03-18
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

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

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

查看完整回答
反对 回复 2019-03-18
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

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

查看完整回答
反对 回复 2019-03-18
  • 8 回答
  • 0 关注
  • 7966 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信