Witam, po wdrożeniu paginacji w laravelu otrzymuję taki błąd:
Call to undefined method stdClass::links()
i nie wiem co jest jego przyczyną.
Witam, po wdrożeniu paginacji w laravelu otrzymuję taki błąd:
Call to undefined method stdClass::links()
i nie wiem co jest jego przyczyną.
Wrzuć kod.
Kod w kontrolerze:
public function index(){
$products = DB::table('shops') -> paginate(32);
return view('shop.index', ['products' => $products]);
}
i w widoku:
{{ $products->links() }}
Standardowo, według dokumentacji
Coś robisz w takim razie źle, ponieważ identyczny kod u mnie działa prawidłowo.
Sprawdź czy:
$products
na pewno jest instancją klasy Illuminate\Pagination\LengthAwarePaginator
.Btw, śmiesznie, że dane z tabeli shops
nazwałeś $products
;-)
Nie mam pojęcia gdzie jest błąd, w kontrolerze jest wszystko ok, dopiero po dodaniu linijki {{ $products -> links() }}
w widoku pojawia się błąd
Nie masz tam gdzieś jakiegoś view composera
czy wtyczki, która potencjalnie mogłaby coś modyfikować?
Nie wiem w sumie który kod miałbym wrzucić ponieważ nie ma go zbyt dużo
Kod z kontrolera, trochę zmieniłem:
<?php
namespace App\Http\Controllers;
use App\Category;
use App\Http\Requests\ShopRequest;
use App\Shipp;
use App\Shop;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ShopController extends Controller
{
public function index(){
$products = Shop::orderBy('created_at', 'DESC') -> paginate(32);
return view('shop.index', ['products' => $products]);
}
no i kod z widoku, wcześniej jest po prostu duży foreach
{{ $products->links() }}
jak zmieniłem minimalnie kontroler błąd wygląda tak:
Call to undefined method Illuminate\Database\Query\Builder::links() (View: C:\xampp\htdocs\shop\resources\views\account\products.blade.php)
niezdefiniowana metoda, zawsze tą paginację robiłem w ten sam sposób i wszystko było ok
@extends('layouts.app')
@section('title', 'Sklep')
@section('content')
<div class="wrapper">
<h2 class="title">Sklep</h2>
<div class="row">
@foreach($products as $products)
<li>{{ $products->title }}</li>
@endforeach
{{ $products->links() }}
</div>
</div>
@endsection
No i przecież w pętli nadpisujesz tę zmienną...