我的问题是如何简化使用laravel分页的多个有说服力的查询。
我正在建立一个拉维网站,在这个网站上人们可以分享某些食谱。
我有多个变量,成员可以搜索、筛选和查找。所以会员可以发布菜谱并添加:-类型-持续时间-国家/地区-平台
其思想是有一个包含所有配方的页面,但也有一些页面只应用了1、2或更多过滤器的配方。e、 冷的5分钟食谱或德国温暖的长食谱。
我使用laravel5.7,现在我用不同的where语句构建各种查询。这样地:
public static function getRecipesMixFilter($cid, $pid, $tid, $did)
{
$recipes = self::with(['member', 'platform', 'member.platform', 'member.duration', 'member.type'])->whereActive(1)->whereHas('member', function ($query) use ($cid, $pid, $tid, $did) {
$query->where('country_id', '=', $cid)
->where('platform_id', '=', $pid)
->where('type_id', '=', $tid)
->where('duration_id', '=', $did);
})->orderBy('updated_at', 'desc')->paginate(24);
return $recipes;
}
但最简单的方法是什么?现在我有15个不同的查询,我觉得可能是1。因此->where('platform\u id','=',1)等是可选的。
当我尝试对每个对象进行筛选时,首先是平台,然后是类型等等,我无法应用分页。
有什么方法可以简化这一点吗?我可以使用ajax过滤器和laravel分页吗?
1条答案
按热度按时间z9zf31ra1#
通过执行以下操作使它们成为可选的: