你如何检查“如果不是空”与雄辩?

你如何检查一个字段是不是空的与雄辩?

我试过Model::where('sent_at', 'IS NOT', DB::raw('null'))->...但它IS NOT作为绑定而是比较。

这就是DB::getQueryLog()所说的:

  '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 

雄辩有一个方法(Laravel 4. / 5 );

 Model::whereNotNull('sent_at') 

Laravel 3:

 Model::where_not_null('sent_at') 

如果像我这样的人想用Laravel 5.2.23中的查询生成器来完成,可以像 – >一样完成

  $searchResultQuery = Users::query(); $searchResultQuery->where('status_message', '<>', '', 'and'); // is not null $searchResultQuery->where('is_deleted', 'IS NULL', null, 'and'); // is null 

或者在范围内:

 public function scopeNotNullOnly($query){ return $query->where('status_message', '<>', ''); } 

如果你想使用数据库门面 :

DB::table('table_name')->whereNotNull('sent_at')->get();

在laravel 5.4这个代码Model :: whereNotNull('column')不工作,你需要添加get()像这样一个Model :: whereNotNull('column') – > get(); 这一个适合我:)

我们可以用

 Model::whereNotNull('sent_at'); 

要么

 Model::whereRaw('sent_at is not null'); 

如果要search删除的logging(软删除logging),请不要使用用户雄辩模型查询。 而是使用Db :: table查询而不是使用下面的代码:

 $stu = Student::where('rollNum', '=', $rollNum . '-' . $nursery)->first(); 

使用:

 $stu = DB::table('students')->where('rollNum', '=', $newRollNo)->first();