Untuk memulai, Anda perlu menjalankan findOrFail () atau serupa dengan $ user query
Mark Baker
9
itu tidak terlalu membantu
Ben
1
Lalu apa fungsinya? Mengapa itu tidak membantu? $user = User::where('email', '=', Input::get('email'));cukup membuat kueri di $user, Anda perlu menjalankan kueri itu. findOrFail()adalah salah satu cara menjalankan kueri itu. get()akan menjadi cara lain, yang firstOrFail()lain
Mark Baker
2
Jika sebuah saran "tidak benar-benar membantu" coba katakan mengapa itu tidak benar-benar membantu, karena dengan begitu itu berarti kita tahu bagaimana meningkatkan / mengubah saran itu
meski tidak pas dengan pertanyaan, tetap saja fungsinya sangat bermanfaat. perbedaan antara keduanya adalah firstOrNew membuat instantiates dari model yang dipanggil sementara firstOrCreate menyimpan model yang ditanyakan secara instan sehingga Anda perlu memperbarui perubahan pada model firstOrCreate'd.
Gokigooooks
Yap, atau cara lain untuk memikirkannya adalah, gunakan firstOrCreate jika Anda dapat melewatkan semua atribut sekaligus (gunakan parameter kedua), tetapi firstOrNew jika Anda akan memerlukan logika lebih lanjut sebelum menyimpan.
Ya tapi itu tidak mengembalikan koleksi. Ini mengembalikan objek model tunggal karena Anda akan menganggap setiap pengguna memiliki yang unik emailsehingga ->isEmpty()akan menimbulkan kesalahan.
user3574492
Dan bagaimana jika saya mendapatkan kesalahan berikut:Call to a member function isEmpty() on null
Pathros
6
if(User::where('email','[email protected]')->first())// It existselse// It does not exist
Gunakan first(), tidak count()jika Anda hanya perlu memeriksa keberadaannya.
first()adalah lebih cepat karena memeriksa satu pertandingan sedangkan count()jumlah semua pertandingan.
Laravel 6 atau di atas: Tuliskan nama tabel, lalu berikan kondisi klausa misalnya di mana where ('id', $ request-> id)
publicfunction store(Request $request){
$target = DB:: table('categories')->where('title', $request->name)->get()->first();if($target ===null){// do what ever you need to do
$cat =newCategory();
$cat->title = $request->input('name');
$cat->parent_id = $request->input('parent_id');
$cat->user_id=auth()->user()->id;
$cat->save();return redirect(route('cats.app'))->with('success','App created successfully.');}else{// match found return redirect(route('cats.app'))->with('error','App already exists.');}}
// if you need to do something with the user if($user =User::whereEmail(Input::get('email'))->first()){// ...}// otherwise
$userExists =User::whereEmail(Input::get('email'))->exists();
ini kode sederhana untuk memeriksa apakah ada email di database
$ data = $ request-> all ();
$ user = DB :: table ('User') -> pluck ('email') -> toArray ();
if (in_array ($ user, $ data ['email']))
{
echo 'email yang ada';
}
$user = User::where('email', '=', Input::get('email'));
cukup membuat kueri di$user
, Anda perlu menjalankan kueri itu.findOrFail()
adalah salah satu cara menjalankan kueri itu.get()
akan menjadi cara lain, yangfirstOrFail()
lainJawaban:
Itu tergantung apakah Anda ingin bekerja dengan pengguna sesudahnya atau hanya memeriksa apakah ada.
Jika Anda ingin menggunakan objek pengguna jika ada:
Dan jika Anda hanya ingin memeriksa
Atau bahkan lebih baik
sumber
exists()
dengan catatan yang tidak ada maka memberikan kesalahan:Call to a member function exists() on null
first()
Salah satu solusi terbaik adalah dengan menggunakan metode
firstOrNew
ataufirstOrCreate
. The dokumentasi memiliki rincian lebih lanjut tentang kedua.sumber
sumber
exists()
metode ini.Fasih menggunakan koleksi. Lihat tautan berikut: https://laravel.com/docs/5.4/eloquent-collections
sumber
email
sehingga->isEmpty()
akan menimbulkan kesalahan.Call to a member function isEmpty() on null
Gunakan
first()
, tidakcount()
jika Anda hanya perlu memeriksa keberadaannya.first()
adalah lebih cepat karena memeriksa satu pertandingan sedangkancount()
jumlah semua pertandingan.sumber
Dalam laravel fasih, ada metode default exist (), lihat contoh berikut.
if(User::where('id', $user_id )->exists()){ // your code... }
sumber
Laravel 5.6.26v
untuk menemukan catatan yang ada melalui kunci utama (email atau id)
kemudian
termasuk "gunakan DB" dan nama tabel pengguna menjadi jamak menggunakan kueri di atas seperti pengguna ke pengguna
sumber
Ini akan memeriksa apakah email yang diminta ada di tabel pengguna:
sumber
Di Controller Anda
Dalam Tampilan Anda - Tampilkan Pesan Sudah Ada
sumber
required|unique:users,email|email
akan bekerja dengan coba / tangkap
-> get () masih akan mengembalikan array kosong
sumber
sumber
Sangat mudah untuk mengetahui apakah ada catatan atau tidak
sumber
sumber
Anda dapat menggunakan validasi laravel.
Tetapi kode ini juga bagus:
sumber
Ini akan memeriksa apakah alamat email tertentu ada di tabel:
sumber
Memeriksa
null
dalamif
pernyataan mencegah Laravel mengembalikan 404 segera setelah kueri berakhir.Sepertinya menjalankan kueri ganda jika pengguna ditemukan, tapi sepertinya saya tidak dapat menemukan solusi andal lainnya.
sumber
find
denganwhere
.User::where(id, 1)->first()
dapat ditulis sebagai
Ini akan mengembalikan benar atau salah tanpa menetapkan variabel sementara jika hanya itu yang Anda gunakan $ user dalam pernyataan asli.
sumber
Saya pikir cara di bawah ini adalah cara paling sederhana untuk mencapai yang sama:
sumber
Metode yang dibuat di bawah ini (untuk saya sendiri) untuk memeriksa apakah id record yang diberikan ada pada tabel Db atau tidak.
Rumah Ini membantu!
sumber
Cara termudah untuk dilakukan
sumber
Laravel 6 atau di atas: Tuliskan nama tabel, lalu berikan kondisi klausa misalnya di mana where ('id', $ request-> id)
sumber
Cara efisien untuk memeriksa apakah ada catatan Anda harus menggunakan metode is_null untuk memeriksa terhadap permintaan.
Kode di bawah ini mungkin bermanfaat:
sumber
Opsi kerja terpendek:
sumber
di sini adalah tautan ke sesuatu yang saya pikir dapat membantu https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/
sumber
ini kode sederhana untuk memeriksa apakah ada email di database
sumber