Laravel 5.5调用未定义的方法stdClass :: update()

时间:2018-05-08 05:31:12

标签: laravel laravel-5

Laravel 5.5向我显示错误消息:

  

调用未定义的方法stdClass :: update()

表示模型

中的以下代码
DB::table('adminUserLogs')
            ->where('adminUserId', $id)
            ->where('adminUserOutTime', NULL)->first()
            ->update(['adminUserOutTime' => \Carbon\Carbon::now()]);

2 个答案:

答案 0 :(得分:3)

尝试在链中使用->limit(1)代替->first()

答案 1 :(得分:1)

在Laravel中,如果您只想更新一条记录,那么您可以使用Eloquent ORM的->first()方法获取雄辩的对象,然后您只需通过->save()更新对象。

Laravel查询构建器直接不支持仅更新记录,因为mysql MySQL - UPDATE query with LIMIT

不直接支持限制为1的更新

在这里给出的例子中有一些修改工作,

DB::table('adminUserLogs')
        ->where('adminUserId', $id)
        ->where('adminUserOutTime', NULL)
        ->update(['adminUserOutTime' => \Carbon\Carbon::now()]);

这将导致更新指定条件的记录。更新该特定记录的where子句中的特定记录传递id列。