Не могу получить значение одного столбца из базы данных - PullRequest
0 голосов
/ 24 октября 2018

Я хочу получить одно значение из 1 записи в БД, но есть ошибка ...

$gamer_name = Gamer::where('user_id', $gamer_id)->first()->name;

В результате у меня есть это ...

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

Если я удаляю ->name из запроса, подобного этому

$gamer_name = Gamer::where('user_id', $gamer_id)->first();

, тогда я получаю App\Gamer Objectданные вместо имени.Я не могу просто получить одно значение из одной строки с Eloquent.

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Вы можете использовать pluck() для этой цели

$gamer_name = Gamer::where('user_id', $gamer_id)->pluck('name');

Документация: https://laravel.com/docs/4.2/queries#selects

0 голосов
/ 24 октября 2018

есть различные решения для этого запроса, и одним из самых простых может быть

$gamer_name = Gamer::where('user_id', $gamer_id)->first()->select('name');

следующий

$gamer_name = Gamer::where('user_id', $gamer_id)->first()->value('name');
0 голосов
/ 24 октября 2018

Использование построителя запросов вместо коллекции, но он должен работать:

$gamer_name = DB::table("gamers")->where("user_id", $gamer_id)->value("name");

Из документации :

Если вы этого не сделаетедаже если вам нужна целая строка, вы можете извлечь одно значение из записи, используя метод value.Этот метод возвращает значение столбца напрямую:

$email = DB::table('users')->where('name', 'John')->value('email');

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