Call to undefined method Illuminate\Database\Query\Builder::links()

allan picture allan · Aug 11, 2014 · Viewed 20.1k times · Source

whats up ? I have a little problem with Laravel Paginator.

I built the function using order by and paginator, but I'm getting the error message "Call to undefined method Illuminate \ Database \ Query \ Builder :: links () (View: C: \ wamp \ www \ laravel \ app \ views \ frontend \ premios.blade.php). "

============= My Function ==============

public function premios()
{
$this->layout->content = View::make('frontend.premios')->with('premiostexto',PremiosTexto::all()) ->with('premios', Premios::orderBy('ordem', 'ASC')->paginate(5));
}

==========My View============

@foreach($premios as $premios)
    <span class="tituloPremio">{{$premios->titulo}}</span>
    <span class="dataPremio">{{$premios->data}}</span>
@endforeach

    {{ $premios->links() }}

I tried putting "$premios->links()" inside and outside the foreach.Without pagination everything works good

Answer

Joseph Silber picture Joseph Silber · Aug 11, 2014

You are overriding the $premios variable in the foreach. Use it as singular form in the foreach:

@foreach($premios as $premio)
    <span class="tituloPremio">{{$premio->titulo}}</span>
    <span class="dataPremio">{{$premio->data}}</span>
@endforeach

{{ $premios->links() }}