我试图通过单击特定类别来显示其类别与我获得的$ id匹配的所有产品。
我尝试使用-> first()和-> pluck('name')函数
我尝试在CategoriesController中执行此操作:
public function show($id)
{
$category = Category::where('id', $id)->pluck('name');
$products = Product::where('categorie', $category)->get();
return view('categories.show')->with('products',$products);
}
ErrorException方法链接不存在。 (视图: C:\ wamp64 \ www \ gestionPointDeVente \ resources \ views \ categories \ show.blade.php) (该页面显示该类别的所有产品)
BadMethodCallException方法链接不存在。在Macroable.php中 第74行
非常感谢!
答案 0 :(得分:1)
首先,对于类别,您可能正在使用路由模型绑定,因此:
public function show($id)
可以变成这个:
public function show(Category $category)
{
// if you decide to keep the id you can uncomment the next line
// $category = Category::find($id);
// the product has the category name or id?
$products = Product::where('categorie', $category->name)->get();
return view('categories.show')->with('products',$products);
}
然后错误提示您缺少使用分页的links
方法,但是在代码中却没有。
所以这行:
$products = Product::where('categorie', $category->name)->get();
应该变成这样:
$products = Product::where('categorie', $category->name)->paginate(10);
答案 1 :(得分:1)
您可以使用此:
$category = Category::where('id', $id)->first()->name;
->first()
从数据库中提取第一项作为您的实体,然后您可以使用实体的name
属性访问名称。
答案 2 :(得分:0)
尝试一下。
true