Laravel Eloquent-получить один ряд


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

$user = User::whereEmail($email)->get();

но это возвращает массив (размерности 1) $users. Так что если я хочу получить имя, я должен сделать $user[0]['first_name'].

Я пробовал использовать limit(1) или take(1), или даже ->toArray() но не было никакой разницы.

что я делаю не так?

3   51   2014-05-29 07:59:02

3 ответа:

просто используйте этот:

$user = User::whereEmail($email)->first();

Вы тоже можете это сделать

перед использованием этого вы должны объявить фасад БД в контроллере Просто поставьте эту строку для этого

use Illuminate\Support\Facades\DB;

Теперь вы можете получить строку, используя этот

$getUserByEmail = DB::table('users')->where('email', $email)->first();

и это тоже

$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['[email protected]']);

этот возвращает массив только с одним элементом в нем и в то время как первый возвращает объект. Имейте это в виду.

надеюсь, что это помогает.

вы также можете использовать этот

$user = User::where('Email' , $email)->get();