[英]Laravel Pagination - Call to undefined method Illuminate\Database\Eloquent\Builder::links()
[英]Laravel 7.6 Call to undefined method Illuminate\Database\Eloquent\Builder::appends()
我無法通過查詢對結果進行 append 。 我正在使用頁面上的類別過濾結果並嘗試添加分頁。 當用戶單擊類別時,應僅顯示與類別相關的產品,並且在分頁時我想保留所選類別。 我收到此錯誤:
Facade\Ignition\Exceptions\ViewException 調用未定義的方法 Illuminate\Database\Eloquent\Builder::appends()(視圖:D:\Xampp\htdocs\ProjectName\resources\views\products\index.blade.php)
我已經從 laravel 文檔中嘗試過這個
{{ $users->appends(['category' => 'query'])->links() }}
這是我的 Controller:
public function index(Request $request)
{
// If the category is selected
if(request()->category) {
$products = Product::with('categories')->whereHas('categories', function ($query){
$query->where('slug', request()->category);
});
$categories = Category::all();
$categoryName = optional($categories->where('slug', request()->category)->first())->name;
}else {
$products = Product::paginate(9);
$categories = Category::all();
$categoryName = 'All Products';
}
return view('products.index')->with([
'products' => $products,
'categories' => $categories,
'categoryName' => $categoryName,
]);
}
這是我的刀片文件:
<h4>{{ $categoryName }}</h4>
@forelse ($products as $product)
<div class="card mb-3 shadow" style="">
<div class="row no-gutters">
<div class="col-md-4 d-flex justify-content-around p-2 border">
<img src="/storage/products/{{ $product->image }}" class="card-img">
</div>
<div class="col-md-8 p-2">
<div class="card-body">
<h5 class="card-title">{{ $product->title}}</h5>
<p class="card-text"> {!! \Illuminate\Support\Str::limit($product->text, $limit = 100) !!} </p>
<div class=""><a href="/products/{{ $product->slug }}"><button class="btn btn-outline-warning float-left">View Cataloge</button></a>
</div>
</div>
</div>
</div>
</div>
@empty
<div class="card">
<div class="card-title p-5 shadow bg-light">
<h5>No products found</h5>
</div>
</div>
@endforelse
<div class=" d-flex justify-content-around">
{{ $products->appends(request()->input())->links() }}
</div>
在這里,您缺少paginate(9)
也通過 ($request) 關閉 function
public function index(Request $request)
{
// If the category is selected
if (!empty($request)) {
$products = Product::whereHas('categories', function ($query) use ($request) {
$query->where('slug', $request->category);
})->paginate(9);
$categories = Category::all();
$categoryName = optional($categories->where('slug', request()->category)->first())->name;
return view('products.index')->with([
'products' => $products,
'categories' => $categories,
'categoryName' => $categoryName,
]);
}
else {
$products = Product::paginate(9);
$categories = Category::all();
$categoryName = 'All Products';
return view('products.index')->with([
'products' => $products,
'categories' => $categories,
'categoryName' => $categoryName,
]);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.