Mar*_*lln 197 laravel eloquent
如何使用Eloquent 检查字段是否为空?
我试过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
Run Code Online (Sandbox Code Playgroud)
小智 365
Eloquent有一种方法(Laravel 4.*/5.*);
Model::whereNotNull('sent_at')
Run Code Online (Sandbox Code Playgroud)
Laravel 3:
Model::where_not_null('sent_at')
Run Code Online (Sandbox Code Playgroud)
Ati*_*qur 17
如果像我这样的人想在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
Run Code Online (Sandbox Code Playgroud)
或者在模型中使用范围:
public function scopeNotNullOnly($query){
return $query->where('status_message', '<>', '');
}
Run Code Online (Sandbox Code Playgroud)
小智 12
我们可以用
Model::whereNotNull('sent_at');
Run Code Online (Sandbox Code Playgroud)
或者
Model::whereRaw('sent_at is not null');
Run Code Online (Sandbox Code Playgroud)
小智 7
在laravel 5.4中,此代码Model::whereNotNull('column')无法正常工作,您需要get()像这样添加这个代码,Model::whereNotNull('column')->get();这对我来说效果很好。
我看到这个问题有点老了,但我遇到了它寻找答案。虽然我在这里的答案没有成功,但我认为这可能是因为我使用的是PHP 7.2和Laravel 5.7。或者可能是因为我只是在 CLI 上使用 Laravel Tinker 处理一些数据。
我尝试了一些对我有用的方法,而另一些则没有,我希望能帮助其他人。
MyModel::whereNotNull('deleted_by')->get()->all(); // []
MyModel::where('deleted_by', '<>', null)->get()->all(); // []
MyModel::where('deleted_by', '!=', null)->get()->all(); // []
MyModel::where('deleted_by', '<>', '', 'and')->get()->all(); // []
MyModel::where('deleted_by', '<>', null, 'and')->get()->all(); // []
MyModel::where('deleted_by', 'IS NOT', null)->get()->all(); // []
Run Code Online (Sandbox Code Playgroud)
以上所有都为我返回了一个空数组
DB::table('my_models')->whereNotNull('deleted_by')->get()->all(); // [ ... ]
Run Code Online (Sandbox Code Playgroud)
这按照我的预期返回了数组中的所有结果。注意:如果您愿意,您可以删除all()并取回Illuminate\Database\Eloquent\Collection而不是数组。
| 归档时间: |
|
| 查看次数: |
237961 次 |
| 最近记录: |