2017-06-01 80 views
0

我添加子类别我与这里Adding subcategories to laravel 5.4帮助应用程序,在此之前,在category我的搜索基础工作就好了,现在我试图改变我的subcategory搜索库,并没有返回结果。Laravel不会返回小类导致

这里是我的搜索功能:

public function search() 
{ 
    $searchTitle = request('title'); 
    $searchCategory = request('subcategory'); 
    $searchLocation = request('location'); 

    $ads = null; 

    if($searchTitle || $searchCategory || $searchLocation) { 
     $ads = Ad::when($searchTitle, function ($query) use ($searchTitle) { 
       return $query->where('title', 'like', "%{$searchTitle}%") 
        ->orWhere('description', 'like', "%{$searchTitle}%"); 
      }) 
      ->when($searchCategory, function ($query) use ($searchCategory) { 
       return $query->whereHas('subcategory', function ($query) use ($searchCategory) { 
        $query->where('id', $searchCategory); 
       }); 
      }) 
      ->when($searchLocation, function ($query) use ($searchLocation) { 
       return $query->whereHas('location', function ($query) use ($searchLocation) { 
        $query->where('id', $searchLocation); 
       }); 
      }) 
      ->paginate(10) 
      ->appends(request()->query()); 
    } 

    return view('search-result', compact('ads')); 
} 

这是我的搜索表单类部分:

<label data-toggle="tooltip" data-placement="top" title="select category" class="sr-only mr-sm-2" for="inlineFormCustomSelect">Category</label> 
       <select name="subcategory_id" data-toggle="tooltip" data-placement="top" title="select category" 
         class="custom-select mb-2 mr-sm-2 mb-sm-0" id="inlineFormCustomSelect"> 
         <option value="">Select category</option> 
         @foreach ($categories as $category) 
         <optgroup label="{{ $category->name }}"> 
          @foreach($category->subcategories as $sub) 
           <option value="{{ $sub->id }}">{{ $sub->name }}</option> 
          @endforeach 
         </optgroup> 
         @endforeach 
       </select> 

我尝试了许多变化,并与万亩功能码播放,但没有仍将返回no results!错误。

+0

你试过DD知道你从那个查询中得到什么? –

+0

@PrafullaKumarSahu没有我应该把dd()和什么属性?! – djhru

+0

删除分页并尝试dd($ ads)。 –

回答

1

可能应该工作

$ads = Ad::when($searchTitle, function ($query) use ($searchTitle) { 
    return $query->where('title', 'like', '%'.$searchTitle.'%') 
     ->orWhere('description', 'like', '%'.$searchTitle.'%'); 
}) 
->when($searchCategory, function ($query) use ($searchCategory) { 
    return $query->whereHas('subcategory', function ($q) use ($searchCategory) { 
     $q->where('id', $searchCategory); 
    }); 
}) 
->when($searchLocation, function ($query) use ($searchLocation) { 
    return $query->whereHas('location', function ($q) use ($searchLocation) { 
     $q->where('id', $searchLocation); 
    }); 
}) 
->paginate(10) 
->appends(request()->query()); 

也不要忘记你输入的名字..它应该是对应于请求..

+0

不工作..... – djhru

+0

感谢现在工作的人:) – djhru

相关问题