Call to undefined method stdClass::links()

0

Witam, po wdrożeniu paginacji w laravelu otrzymuję taki błąd:

Call to undefined method stdClass::links()

i nie wiem co jest jego przyczyną.

0

Wrzuć kod.

0

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

0

Coś robisz w takim razie źle, ponieważ identyczny kod u mnie działa prawidłowo.

Sprawdź czy:

  1. $products na pewno jest instancją klasy Illuminate\Pagination\LengthAwarePaginator.
  2. Na pewno jest przekazywany poprawnie w widoku, czy nigdzie go tam nie nadpisujesz.
  3. Czy nie zrobiłeś gdzieś po drodze literówki, rzutowania itd.

Btw, śmiesznie, że dane z tabeli shops nazwałeś $products ;-)

0

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

0

Nie masz tam gdzieś jakiegoś view composera czy wtyczki, która potencjalnie mogłaby coś modyfikować?

0

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

0
@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
2

No i przecież w pętli nadpisujesz tę zmienną...

1 użytkowników online, w tym zalogowanych: 0, gości: 1