Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加orderBy正在删除我的筛选器_Php_Laravel - Fatal编程技术网

Php 添加orderBy正在删除我的筛选器

Php 添加orderBy正在删除我的筛选器,php,laravel,Php,Laravel,在过滤器中应用category\u parent后,它将从242降低到13 但只要我加入order by,它就会将结果恢复到全额: 我的结果方法可以在这里找到: 这是我的搜索表: 我不明白为什么——有人能帮忙吗 代码: 公共功能结果(请求$Request){ //dd($request->all()); $courses=课程::选择(['*'); //如果只有父类别 如果($request->has('category\u parent')和!$request->has('categor

在过滤器中应用
category\u parent
后,它将从242降低到13

但只要我加入order by,它就会将结果恢复到全额:

我的结果方法可以在这里找到:

这是我的搜索表:

我不明白为什么——有人能帮忙吗

代码:

公共功能结果(请求$Request){
//dd($request->all());
$courses=课程::选择(['*');
//如果只有父类别
如果($request->has('category\u parent')和!$request->has('category\u child'))
{
$parent_category[]=(整数)$request->get('category_parent');
$child\u categories=Category::where('parent\u id',$request->get('Category\u parent'))->list('id')->toArray();
$all_categories=数组_merge($parent_categories,$child_categories);
$courses=$courses->whereHas('categories',function($query)use($all_categories){
$query->where(函数($query)use($all_类别){
foreach($category作为$category的所有类别)$query->orWhere('category\u id','=',$category);
});
});
//带子类别的else
}elseif($request->has('category\u parent')和$request->has('category\u child')){
$courses=$courses->whereHas('categories',function($query)use($request){
$query->where('category\u id','=',$request->get('category\u child');
});
}
如果($request->has('course\u week')){
$courses=$courses->where('courses\u weeks',$request->get('courses\u weeks');
}
//如果设置开始日期
如果($request->has('start_date')){
$start\u date\u begin=substr($request->get('start\u date'),0,10);
$start\u date\u finish=substr($request->get('start\u date'),-10);
如果(preg_match(“/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/”,$start_date_begin)和preg_match(“/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/”,$start_date u finish)){
$carbon\u begin=carbon::createFromFormat('d/m/Y',$start\u date\u begin);
$carbon\u finish=carbon::createFromFormat('d/m/Y',$start\u date\u finish);
$courses=$courses->where('start_date','>=',$carbon_begin->startOfDay());

$courses=$courses->where('start_date',”在代码第83行添加order by时,您正在创建一个全新的查询。这将覆盖
$courses
对象并删除所有现有筛选器

$courses = $courses->orderBy('start_date', $request->order_by);
您应该对此进行更改,以便将其添加到现有查询中。应如下所示:

if($request->has('order_by')) {
        $courses->orderBy('start_date', $request->order_by);
}

在代码第83行添加order by时,您正在创建一个全新的查询。这将覆盖
$courses
对象并删除所有现有筛选器

$courses = $courses->orderBy('start_date', $request->order_by);
您应该对此进行更改,以便将其添加到现有查询中。应如下所示:

if($request->has('order_by')) {
        $courses->orderBy('start_date', $request->order_by);
}

我在你的代码中发现,你想要条件订单,你犯了一个错误,创建了新的课程模型查询,只需替换下面的代码


我在你的代码中发现,你想要条件订单,你犯了一个错误,创建了新的课程模型查询,只需替换下面的代码


请显示生成querySorry的代码!请显示生成querySorry的代码!谢谢,这很有意义,但我如何继续现有查询-您建议的上面的代码表示$query不可用。$courses=$courses->orderBy('start\u date',$request->order\u by);谢谢,这很有意义,但是我如何继续现有的查询-您建议的上面的代码显示$query不可用。$courses=$courses->orderBy('start\u date',$request->order\u by);
if($request->has('order_by')) {
        $courses->orderBy('start_date', $request->order_by);
}