简体   繁体   中英

Laravel 6 pagination

Hi i am trying to paginate data from the database and i am getting the error below

"Call to undefined method App\Material::links() (View: C:\xampp\htdocs\project104\resources\views\swapview.blade.php)"

I don`t know where i am getting this wrong, i tried changing variables but still got an error

below is my controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Material;

class SwapViewController extends Controller
{
    public function index()
    {
        
        return view('swapview');
    }

    public function show()
    {
        $inf = Material::paginate(4);
        $info = Material::orderBy('created_at', 'DESC')->get();
        return view('swapview',['info'=>$info]);
    }
}

below is my view

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
        @foreach($info as $inf)
        <div style="background-color:#162238; color:white;" class="card mb-3" style="max-width: 540px;">
  <div class="row g-0">
    <div class="col-md-4">
      <img
        src="{{asset('images/' . $inf->imogi)}}"
        alt="Trendy Pants and Shoes"
        
      />
    </div>
    <div class="col-md-8">
      <div class="card-body">
      <div style="text-align: right;">
      <i style="color:#3490dc" class="fa fa-building-o" style="font-size:24px"></i> <small>{{$inf->organazation}}</small> <small><i class="fa fa-calendar" style="color:#3490dc" aria-hidden="true"></i> {{ $inf->created_at->format('d/m/Y') }}</small>
      </div>
      <br/>
                   <!--LIVEWIRE online status-->
                   @if($inf->isOnline())
              <small><div class="circle"></div></small> <small  style="color:#22bb33;">operative</small>
              @else
             <small><div  class="ocircle"></div></small> <small>inoperative</small>
             @endif
   
      <h5 class="card-title"><i class="fa fa-user-circle-o" style="color:#3490dc" aria-hidden="true"></i> {{$inf->name}}</h5>
      <small style="color:#3490dc;"><i class="fa fa-clock-o" style="color:#3490dc;"></i></small> <small style="color:#3490dc;"> posted {{ \Carbon\Carbon::parse($inf->created_at)->diffForHumans() }}</small><br/>
       <small><i class="fa fa-map-marker" style="color:#3490dc" aria-hidden="true"></i> {{$inf->location}}</small> | <small><i class="fa fa-phone" style="color:#3490dc" aria-hidden="true"></i>{{$inf->contact}}</small>
       
       <hr color=3490dc>
        <p class="card-text">
        <small><small style="color:#3490dc;"><i class="fa fa-exchange" aria-hidden="true"></i></small> {{$inf->swap}}</small>
        </p>
        <hr color=3490dc>
        <p class="card-text">
        <small><small style="color:#3490dc;"><i class="fa fa-exchange" style="font-size:10px"></i></small> {{$inf->exchange}}</small>
        </p>
      </div>
    </div>
  </div>
  <a style="color:red;" href="{{ route('report') }}"><i class="fa fa-flag" style="color:red;" aria-hidden="true"></i> <small style="color:#3490dc;">Report</small></a>
</div>
<br/>
@endforeach
{{ $inf->links() }}
        </div>
    </div>
</div>
@include('footer')
@endsection

I will appreciate any help, thanks in advance

In your controller, this is your show method:

    public function show()
    {
        $inf = Material::paginate(4);
        $info = Material::orderBy('created_at', 'DESC')->get();
        return view('swapview',['info'=>$info]);
    }

So in your return, you send the $info variable to your view, but not you $inf .

And then, in your view, you are using $info as $inf , so your $inf variable is one Material item, not the paginate Material items you get in the controller. So then, when you use $inf->links() , Laravel can't get you some pagination links... because you are not on a paginate element.

It seems there is some confusion in variable naming.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM