3 回答

TA貢獻(xiàn)1776條經(jīng)驗 獲得超12個贊
試試下面的代碼。我不是 Laravel 開發(fā)人員,只是看了一些文檔并寫了這個答案。
您收到Call to a member function products() on null錯誤消息,因為$category它為空(沒有任何數(shù)據(jù))。所以你應(yīng)該在調(diào)用之前檢查是否$category有任何數(shù)據(jù)products()。
您可以檢查products刀片模板中是否為空并相應(yīng)地打印消息。無需為此呈現(xiàn)另一個模板。
public function show($slug)
{
$category = $this->categoryRepository->findBySlug($slug);
if ($category) {
$products = $category->products()->paginate(6);
}
return view('site.pages.category')->with(['products' => $products]);
}
在你的刀片模板中,檢查$products不為空,
@if ($products)
@foreach ($products as $product)
{{ $product->name}}
@endforeach
{{ $products->links() }}
@else
products not found
@endif
顯然,根據(jù)您的需要更改模板。

TA貢獻(xiàn)1829條經(jīng)驗 獲得超6個贊
我這樣修改了控制器:
public function show($slug)
{
$category = $this->categoryRepository->findBySlug($slug);
$products = $category->products();
if(isset($products) && !empty($products)){
$paginate = $products->paginate(6);
return view('site.pages.category')->with(['category' => $category,
'paginate' => $paginate]);
}
else {
return view('site.pages.category', compact('category'));
}
}
但是,現(xiàn)在我明白了:Call to a member function products() on null..

TA貢獻(xiàn)1757條經(jīng)驗 獲得超7個贊
將它包裹在一個 if 語句周圍,比如if(isset($your_variable) && !empty($your_variable)){
你可能只需要 isset 或 !empty,但你可以四處亂逛,看看有什么用。希望有幫助!
- 3 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報