我正在尝试通过单击特定类别来显示其类别与我要获取的$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行中
非常感谢!
发布于 2019-05-23 04:38:01
首先,对于Category,您可以使用路由模型绑定,因此:
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);
发布于 2019-05-23 04:38:35
您可以使用以下命令:
$category = Category::where('id', $id)->first()->name;
->first()
从数据库中提取第一项作为您的实体,然后您可以使用该实体的name
属性来访问该名称。
发布于 2019-05-23 04:38:56
尝尝这个。
public function show($id)
{
$categoryName = Category::where('id', $id)->value('name');
$products = Product::where('categorie', categoryName)->paginate();
return view('categories.show')->with('products',$products);
}
https://stackoverflow.com/questions/56264589
复制相似问题