语法错误,意外 'compact' (T_STRING),应为 ',' 或 ')'

syntax error, unexpected 'compact' (T_STRING), expecting ',' or ')'

我试图在创建产品页面获取所有类别,但它显示:

syntax error, unexpected 'compact' (T_STRING), expecting ',' or ')'

控制器:

  public function index(Request $request)
  {
      $categories = Category::distinct()->get();
      return view('admin.product.index' compact('categories'));
  }

Blade:

  <div class="form-group">
       <select class="form-control" name="category_id">
          <option selected="">Under Category</option>
          @foreach(categories as category)
             <option value="{{ $category->id }}">{{ $category->name }}</option>
          @endforeach
       </select>
  </div>

错误:

您忘记了 compact:

前的逗号
return view('admin.product.index', compact('categories'));

而且在您看来您忘记了 $ 标志:

@foreach($categories as $category)

您也可以使用

$arr_view_data = []; $arr_view_data['categories'] = $categories; return view('admin.product.index',$arr_view_data);

我在您的代码中发现了两个错误,一个在控制器中,另一个在视图中。 也许你忘了在中间加上逗号,所以它应该像

 return view('admin.product.index', compact('categories'));

虽然在视图中,您的循环不正确,也许您错过了 $ 符号。应该是

@foreach($categories as $category)