Неопределенное свойство: Illuminate \ Database \ Query \ Builder :: $ auth - PullRequest
0 голосов
/ 04 июля 2018

У меня есть таблица базы данных с именами 'server_admins' и 'users'.

В таблице server_admins есть строка с именем 'auth'

таблица пользователей содержит строки 'steam_id' и 'username'

'auth' и 'steam_id' имеют одинаковый результат, например: STEAM_0: 0: 113434

Как мне перейти от 'auth' к 'steam_id' и получить имя пользователя?

Я пытаюсь так:

            $serveradmins = DB::table('server_admins')->get();
        $serveradmins->auth = DB::table('server_admins')->auth->get();
        $serveradmins->username = User::where('steam_id', '=', $serveradmins->auth)->first()->username;
        $this->pageView('servers::admins', ['serveradmins' => $serveradmins]);

Но получаю ошибку:

Undefined property: Illuminate\Database\Query\Builder::$auth

Извините, если действительно тупой спросите, я только учусь laravel :)

1 Ответ

0 голосов
/ 04 июля 2018

Я не уверен, почему вы используете несколько запросов, чтобы получить то, что у вас уже есть, но имейте в виду, что ->get() возвращает Collection, а не одну запись. Измените свой код на:

$serverAdmin = DB::table('server_admins')->first();

Эта строка:

$serveradmins->auth = DB::table('server_admins')->auth->get();

Не имеет смысла; Если вы используете вышеуказанное, $serverAdmin->auth уже доступен, поэтому вызов другого запроса для его получения является излишним. В остальном все в порядке:

$serveradmin->username = User::where('steam_id', '=', $serveradmins->auth)->first()->username;
$this->pageView('servers::admins', ['serveradmins' => $serveradmins]);

Если $serverAdmins должен быть массивом (или Collection), вам потребуется выполнить цикл:

$serveradmins = DB::table('server_admins')->get();
foreach($serverAdmins AS $serverAdmin){
    $serveradmin->username = User::where('steam_id', '=', $serveradmin->auth)->first()->username;
}
$this->pageView('servers::admins', ['serveradmins' => $serveradmins]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...