如何在 Laravel 查询中执行 IS NOT NULL
How to do IS NOT NULL in a Laravel query
我正在尝试执行此 SQL 语句并使用 blade 引擎输出它:
" SELECT SUM(like) FROM likes WHERE post_id = ". $post->id. " AND source_id IS NOT '' "
我不知道该怎么做,我昨天试过了,但没有用:
{{$post->likes->where('post_id', $post->id)->where('source_id', '<>', '')->sum('like')}}
喜欢table"belongsTo"来源table和帖子 table.
编辑:
我正在使用 Laravel 版本 5.2.45
你试过这样吗...
{{$post->likes->where('post_id', $post->id)->whereNotNull('source_id')->sum('like')}}
也试试
{{$post->likes->
where([
['post_id', '=', $post_id],
['source_id', '<>', NULL],])
->sum('like') }}
你可以使用whereNotNull()
方法。
https://laravel.com/docs/5.3/queries#where-clauses
更新
看来$posts
是合集。在这种情况下,您将不得不使用 filter()
。例如:
$collection->filter(function ($item) {
return $item['some_value'] !== null;
});
对于Laravel 4./5。它的 whereNotNull() 和 Laravel 3:它的 where_not_null()。
如果版本是 Laravel 4./5.,
那么你的查询将是这样的
{{$post->likes->where('post_id', $post->id)->whereNotNull('source_id')->sum('like')}}
如果版本是Laravel 3,
,查询将是这个
{{$post->likes->where('post_id', $post->id)->where_not_null('source_id')->sum('like')}}
我正在尝试执行此 SQL 语句并使用 blade 引擎输出它:
" SELECT SUM(like) FROM likes WHERE post_id = ". $post->id. " AND source_id IS NOT '' "
我不知道该怎么做,我昨天试过了,但没有用:
{{$post->likes->where('post_id', $post->id)->where('source_id', '<>', '')->sum('like')}}
喜欢table"belongsTo"来源table和帖子 table.
编辑:
我正在使用 Laravel 版本 5.2.45
你试过这样吗...
{{$post->likes->where('post_id', $post->id)->whereNotNull('source_id')->sum('like')}}
也试试
{{$post->likes->
where([
['post_id', '=', $post_id],
['source_id', '<>', NULL],])
->sum('like') }}
你可以使用whereNotNull()
方法。
https://laravel.com/docs/5.3/queries#where-clauses
更新
看来$posts
是合集。在这种情况下,您将不得不使用 filter()
。例如:
$collection->filter(function ($item) {
return $item['some_value'] !== null;
});
对于Laravel 4./5。它的 whereNotNull() 和 Laravel 3:它的 where_not_null()。
如果版本是 Laravel 4./5.,
那么你的查询将是这样的{{$post->likes->where('post_id', $post->id)->whereNotNull('source_id')->sum('like')}}
如果版本是Laravel 3,
,查询将是这个{{$post->likes->where('post_id', $post->id)->where_not_null('source_id')->sum('like')}}