【问题标题】:Items Filtering项目过滤
【发布时间】:2021-07-09 21:46:52
【问题描述】:

我正在尝试制作一个电子商务项目,我想在产品表上添加过滤下拉菜单,以从多个数据库中搜索,但每次我选择一个选项时,我都会在下面收到此错误...

https://flareapp.io/share/v5pzQz2P

这是控制器上的conde

$products = Product::orderBy('id', 'desc')
        ->where( function($query) use($request){
            return $request->status_id ?
                $query->from('products')->where('status',$request->status_id) : '';})
        ->where( function($query) use($request){
            return $request->category_id ?
                $query->from('product_categories')->where('category_id',$request->category_id) : '';})
        ->paginate(30);
        
        $selected_id = [];
        $selected_id['status_id'] = $request->status_id;
        $selected_id['category_id'] = $request->category_id;

        return view('dashboard.products.index', compact('products', 'selected_id'), $data);

我的刀片视图

form class="col-sm-5 px-2" action="{{ route('products.index') }}" method="GET">
                @csrf
                <select class="form-select form-select-sm" name="status_id" aria-label="Bulk actions" onchange="this.form.submit()">
                  <option value="0" {{ $selected_id['status_id'] == '0' ? 'selected' : '' }}>All Products</option>
                  <option value="00" {{ $selected_id['status_id'] == '00' ? 'selected' : '' }}>Disabled Products</option>
                  <option value="1" {{ $selected_id['status_id'] == '1' ? 'selected' : '' }}>Enabled Products</option>
                </select>
              </form>
              <form class="col-sm-5" action="{{ route('products.index') }}" method="GET">
                @csrf
                <select class="form-select form-select-sm" name="category_id" aria-label="Bulk actions" onchange="this.form.submit()">
                  <option value="0" {{ $selected_id['category_id'] == '0' ? 'selected' : '' }}>All Products</option>
                  <option value="1" {{ $selected_id['category_id'] == '1' ? 'selected' : '' }}>11223123</option>
                </select>
              </form>

【问题讨论】:

  • 您的意思是多个表或数据库吗?

标签: php laravel laravel-5 laravel-8


【解决方案1】:

试试这个

      $products = Product::orderBy('id', 'desc')
                         ->categories()
                         ->when($request->status_id, function ($query, $request) {
                             return $query->from('products')->where('status', $request->status_id);
                         })
                         ->when($request->category_id, function ($query, $request) {
                             return $query->from('product_categories')->where('category_id', $request->category_id);
                         })
                         ->paginate(30);

【讨论】:

猜你喜欢
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 2023-04-03
  • 2021-01-30
  • 1970-01-01
  • 2014-12-19
  • 2014-11-23
相关资源
最近更新 更多