Laravel 5.5 Вызов неопределенного метода stdClass :: update () - PullRequest
0 голосов
/ 08 мая 2018

Laravel 5.5 покажи мне сообщение об ошибке:

Вызов неопределенного метода stdClass :: update ()

для следующих кодов в модели

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

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

В Laravel, если вы хотите обновить только одну запись, вы можете использовать ->first() метод Eloquent ORM для получения eloquent объекта, а затем вы можете просто обновить объект с помощью ->save().

Конструктор запросов Laravel напрямую не поддерживает запись только для обновления, поскольку обновление с лимитом 1 напрямую не поддерживается mysql MySQL - запрос UPDATE с LIMIT

В приведенном вами примере есть какая-то модификация для работы,

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

Это приведет к обновлению записей там, где указаны условия. Чтобы обновить конкретную запись, передайте id столбец в положение where этой конкретной записи.

0 голосов
/ 08 мая 2018

Попробуйте использовать ->limit(1) вместо ->first() в цепочке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...