尝试在尝试使用分页单击下一页时获取非对象的属性"名称"



我得到一个错误,说"试图获得非对象的属性'name' ";当我尝试使用分页点击下一页时。

这是我的控制器:

$websites = Website::all();
$menu = Menu::with('categories')->whereHas('categories', function ($query) {
$query->where('slug', request()->category);
})->paginate(8);
$categories = Category::all();
$categoryName = $categories->where('slug', request()->category)->first()->name;
return view('shopmenu')->with([
'menu' => $menu,
'categories' => $categories,
'categoryName' => $categoryName,
'websites' => $websites,
]);

错误如下:

$categoryName = $categories->where('slug', request()->category)->first()->name;

如何解决这个问题?

您需要检查是否有任何记录,然后尝试访问name

$categoryName = $categories->where('slug', request()->category)->first();
if ($categoryName) {
$categoryName = $categoryName->name;
}

基本上由于链接,当你在这个查询$categories->where('slug', request()->category)->first()中得到null,你试图访问null上的name属性,你会得到这个错误。

最新更新