Попытка получить свойство ошибки необъекта в Laravel при назначении идентификатора переменной - PullRequest
0 голосов
/ 08 июля 2019
  1. Я получаю строку в следующем коде:
$grpusrow = DB::table('grpusrs') 
                       ->where('group_id', $id)
                      ->where('user_id', $u_id)
                      ->get();
И затем получить идентификатор в этой строке:
$grpusrid = $grpusrow->id;
Я получаю следующую ошибку в строке в номере 2:

Попытка получить свойство не-объекта

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

->get() всегда будет возвращать несколько объектов одновременно.Вы просто не указываете, по какому индексу $grpusrow получить идентификатор.

$grpusrows = DB::table('grpusrs') 
                    ->where('group_id', $id)
                    ->where('user_id', $u_id)
                    ->get();

foreach ($grpusrows as $grpusrow) {
    dump($grpusrow->id);
}

// Or

$grpusrow = DB::table('grpusrs') 
                    ->where('group_id', $id)
                    ->where('user_id', $u_id)
                    ->first();

dump($grpusrow->id);
0 голосов
/ 08 июля 2019

Возможно 2 решения:

  1. Если вы хотите получить уникальную возвращаемую строку (например, с первичным ключом в аргументах), вам следует попробовать -> first () вместо ->get ().

  2. Проблема заключается в использовании предложений where, я думаю, что это работает с массивом, когда вам нужно более одного предложения where, попробуйте так:

->where([['group_id', '=', $id],['user_id', '=', $u_id]])->get(); (или первый ())

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