Bagaimana Anda memeriksa jika bidang tidak null dengan Eloquent?
Saya mencoba Model::where('sent_at', 'IS NOT', DB::raw('null'))->...
tetapi memberi IS NOT
sebagai pengikat bukan sebagai perbandingan.
Inilah yang DB::getQueryLog()
dikatakan tentang hal itu:
'query' => string 'select * from my_table where sent_at = ? and profile_id in (?, ?) order by created_at desc' (length=101)
'bindings' =>
array (size=3)
0 => string 'IS NOT' (length=6)
1 => int 1
2 => int 4
!=
bukannya TIDAK.Jawaban:
Eloquent memiliki metode untuk itu (Laravel 4. * / 5. *);
Laravel 3:
sumber
whereNull('deleted_at')
dan saya menjalankan kueri saya.whereNotNull()
Metode (dan beberapa orang lain yang didokumentasikan sebelumnya) yang ditambahkan ke dalam dokumentasi dalam versi 5.1: laravel.com/docs/5.1/queries#where-clauses .Jika seseorang seperti saya ingin melakukannya dengan pembangun permintaan di Laravel 5.2.23 itu bisa dilakukan seperti ->
Atau dengan cakupan dalam model:
sumber
'and'
?public function where($column, $operator = null, $value = null, $boolean = 'and');
dan lokasi -".....\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php"
Jika Anda ingin menggunakan fasad DB :
DB::table('table_name')->whereNotNull('sent_at')->get();
sumber
Kita bisa menggunakan
Atau
sumber
Saya melihat pertanyaan ini agak lama tetapi saya berlari melewatinya mencari jawaban. Walaupun saya tidak berhasil dengan jawaban di sini saya pikir ini mungkin karena saya menggunakan PHP 7.2 dan Laravel 5.7.atau mungkin karena saya hanya bermain-main dengan beberapa data di CLI menggunakan Laravel Tinker.
Saya memiliki beberapa hal yang saya coba yang bekerja untuk saya dan orang lain yang tidak saya harap akan membantu orang lain.
Saya tidak berhasil berlari:
Semua hal di atas mengembalikan array kosong untuk saya
Namun saya berhasil menjalankan:
Ini mengembalikan semua hasil dalam array seperti yang saya harapkan. Catatan: Anda dapat menjatuhkan
all()
dan mengembalikan Koleksi Illuminate \ Database \ Eloquent \ daripada sebuah array jika Anda mau.sumber
di laravel 5.4 kode
Model::whereNotNull('column')
ini tidak berfungsi, Anda perlu menambahkanget()
seperti ini yangModel::whereNotNull('column')->get();
ini berfungsi dengan baik untuk saya.sumber
Jika Anda ingin mencari catatan yang dihapus (Soft Deleted Record), jangan gunakan Eloquent Model Query pengguna. Alih-alih menggunakan Db :: tabel kueri misalnya Alih-alih menggunakan Di Bawah ini:
Menggunakan:
sumber
Db::table
untuk menemukan catatan yang terhapus secara lunak. Anda dapat memfilternya dengan metode iniwithTrashed()
, seperti diceritakan dalam dokumen: laravel.com/docs/5.3/eloquent