Saya saat ini menggunakan versi Laravel terbaru.
Saya sudah mencoba pertanyaan berikut:
Code::where('to_be_used_by_user_id', '<>' , 2)->get()
Code::whereNotIn('to_be_used_by_user_id', [2])->get()
Code::where('to_be_used_by_user_id', 'NOT IN', 2)->get()
Idealnya, ini harus mengembalikan semua catatan kecuali user_id = 2
, tetapi mengembalikan larik kosong. Bagaimana cara mengatasinya?
Code::all()
Ini mengembalikan semua 4 catatan.
Model kode:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Code extends Model
{
protected $fillable = ['value', 'registration_id', 'generated_for_user_id', 'to_be_used_by_user_id', 'code_type_id', 'is_used'];
public function code_type()
{
return $this->belongsTo('App\CodeType');
}
}
Untuk
where field not empty
ini berhasil bagi saya:sumber
Meskipun ini sepertinya berhasil
Anda tidak boleh menggunakannya untuk tabel besar, karena sebagai aturan umum "atau" di klausa where Anda menghentikan kueri untuk menggunakan indeks. Anda beralih dari "Pencarian kunci" ke "pemindaian tabel lengkap"
Sebagai gantinya, coba Union
sumber
Atau seperti ini:
sumber