Ini mungkin pertanyaan sederhana, tetapi saya tidak bisa memahaminya. Saya mencoba mendapatkan pengguna melalui email menggunakan:
$user = User::whereEmail($email)->get();
Tapi ini mengembalikan larik (dimensi 1) $ users. Jadi, jika saya ingin mendapatkan nama itu, saya harus melakukannya $user[0]['first_name']
.
Saya mencoba menggunakan limit(1)
atau take(1)
, atau bahkan menggunakan ->toArray()
tetapi tidak ada perbedaan.
Apa yang saya lakukan salah?
Jawaban:
Cukup gunakan ini:
$user = User::whereEmail($email)->first();
sumber
Anda juga bisa melakukan ini
Sebelum Anda menggunakan ini, Anda harus mendeklarasikan fasad DB di controller. Letakkan baris ini untuk itu
use Illuminate\Support\Facades\DB;
Sekarang Anda bisa mendapatkan baris menggunakan ini
$getUserByEmail = DB::table('users')->where('email', $email)->first();
atau dengan ini juga
$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['[email protected]']);
Yang ini mengembalikan array dengan hanya satu item di dalamnya dan sementara yang pertama mengembalikan sebuah objek. Ingatlah itu.
Semoga ini membantu.
sumber
Menggunakan Laravel Eloquent Anda bisa mendapatkan satu baris menggunakan
first()
metode,ia mengembalikan baris pertama tabel jika
where()
kondisi tidak ditemukan, sebaliknya ia memberikan baris pertama yang cocok dari kriteria yang diberikan.Sintaksis:
Model::where('fieldname',$value)->first();
Contoh:
$user = User::where('email',$email)->first(); //OR //$user = User::whereEmail($email)->first();
sumber
laravel 5.8
Jika Anda bahkan tidak memerlukan seluruh baris, Anda dapat mengekstrak satu nilai dari catatan menggunakan
value()
metode ini. Metode ini akan mengembalikan nilai kolom secara langsung:$first_name = DB::table('users')->where('email' ,'me@mail,com')->value('first_name');
periksa dokumen
sumber
Coba dengan itu
$color = \App\Color::take(1)->first();
sumber
Laravel 5.2.0
$sql = "SELECT * FROM users WHERE email = $email"; $user = collect(\User::select($sql))->first();
atau
$user = User::table('users')->where('email', $email)->pluck();
sumber
$user = User::whereEmail($email)->first();
seperti yang diusulkan dalam jawaban yang diterima.Anda juga bisa menggunakan ini
$user = User::whereEmail($email)->first();
sumber