如何检查字段是否为雄辩不为空?

我试着模型::(‘sent_at’,‘不是’,DB::生(“空”))- >…但它给出了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

当前回答

检查“非空”

Model::whereNotNull('column1');

检查“零”

Model::whereNull('column1');

另一个解决方案是使用whereRaw()

Model::whereRaw("column1 IS NOT NULL");
Model::whereRaw("column1 IS NULL");

其他回答

如果你想使用DB facade:

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

如果你想搜索已删除的记录(软删除记录),不要使用雄辩模型查询。

请使用Db::table查询。例如:

而不是:

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

Use:

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

检查“非空”

Model::whereNotNull('column1');

检查“零”

Model::whereNull('column1');

另一个解决方案是使用whereRaw()

Model::whereRaw("column1 IS NOT NULL");
Model::whereRaw("column1 IS NULL");

我们可以用

Model::whereNotNull('sent_at');

Or

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

在laravel 5.4中,这段代码Model::whereNotNull('column')不起作用,你需要像这样添加get() Model::whereNotNull('column')->get();这个很适合我。