получить все записи из таблицы с двумя предложениями where, а затем вызвать столбцы в переменных в laravel - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу получить все записи столбцов из таблицы с двумя предложениями where, а затем хочу назначить каждый столбец переменной для вызова где-нибудь.Я пробовал это, но есть ошибка в файле журнала ошибок отладки

Метод:

$user_match = MemberExtra::where('left_bv', '>=', 1)->where('right_bv', '>=', 1);
$user1 = $user_match->user_id;
$ref_id = $user1->referrer_id;
$ref_user = User::find($ref_id);

$user1 = $user_match->user_id;
$ref_id = $user1->referrer_id;
$ref_user = User::find($ref_id);

$ll_logg = LendingLog::where('user_id', $user1);

Ошибка:

Неопределенное свойство: Illuminate \ Database \ Eloquent\ Builder :: $ user_id

и вторая ошибка:

Свойство [user_id] не существует в этом экземпляре коллекции.

thisошибка появляется во второй строке:

$user1 = $user_match->user_id; ///here is the  error 

какую ошибку я делаю?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019
$user_match = MemberExtra::where([['left_bv', '>=', 1], ['right_bv', '>=', 1]])
  ->get()
  ->map(function($user_match) {
    return [
      'user_id' => $user_match->id,
      'ref_id'  => $user_match->referrer_id,
    ]
  });
0 голосов
/ 26 сентября 2019

Вы вызываете user_id, который является свойством объекта модели для экземпляра построителя запросов или для коллекции , вам необходимополучить фактический объект, используя first(), например,

$user_match = MemberExtra::where('left_bv', '>=', 1)
                         ->where('right_bv', '>=', 1)->first(); // Append first()

Прочитайте Руководство по эксплуатации

...