2015-01-31 18 views
33

En son Laravel kurulumunu kullanıyorum.Eloquent - nerede değil

Benim tablo yapısı şudur:

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() 

İdeal olarak, bu son 3 kayıtları döndürmesi gerekir:

https://www.uploady.com/#!/download/OQSH4ualzUD/x2SIqdcaulqzSSsy Ben bu sorguları çalıştı. Ancak boş dizi döndürür. Bununla nasıl baş edebilirim? Lütfen yardım et.

Code::all() 

döner Tüm 4 kayıtları.

Kod modeli:

<?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'); 
    } 

} 
+4

downvote açıklayınız. Soruyu düzelteceğim. – aBhijit

cevap

82

Kullanım where birlikte bir != operatör ile whereNull

Code::where('to_be_used_by_user_id', '!=' , 2)->orWhereNull('to_be_used_by_user_id')->get() 
+0

Hmm, bu aslında çalışmalıdır. Sanırım hata başka bir yer. Sorunuzu daha fazla kodla günceller misiniz lütfen? – lukasgeiter

+1

NULL kayıtlarını görmezden geliyor. NULL'lerden birini 2'den başka NULL olmayan bir kimliğe değiştirirsem, bu kayıt döndürülür. 'O' ile, MySQL demek istiyorum. – aBhijit

8

ile where field not empty için bu benim için çalıştı:

->where('table_name.field_name', '<>', '')