为什么分页每页都显示表的所有记录?

我在我的 Laravel 项目中添加了分页,如下所示。但所有页面显示的内容都相同。


认为employee表中有8条记录。当我添加以下代码时,在第一页上显示所有 8 条记录,在第二页上也显示相同的 8 条记录。


它不会将前 5 条记录打断到第一页,将后 3 条记录打断到第二页。


控制器


public function all()

{

    $data = DB::table('employees')->paginate(5);

    $employeeshow = employee::all()->toArray();

    return view('employee.index', compact('employeeshow', 'data'));

}

索引.blade.php


  <div>

     <table>

         <tr>

           <th>First Name</th>

           <th>Last Name</th>

         </tr>

       @foreach($employeeshow as $row)

         <tr>

           <td>{{$row['firstname']}}</td>

           <td>{{$row['lastname']}}</td>

         </tr>

       @endforeach

     </table>

      {{ $data->links() }}

  </div>

我想在第一页上显示前 5 条记录,在第二页上显示后 5 条记录。帮我。谢谢


BIG阳
浏览 120回答 2
2回答

慕神8447489

您的代码没有多大意义,您从数据库中获取所有员工并$employeeshow循环访问它们,但是随后您从数据库中获取一组不同的员工并对$data它们进行分页,因此打开哪个页面并不重要,你总是循环遍历$employeeshow其中总是包含相同的员工。我会执行以下操作:控制器:public function all(){    $employees = employee::paginate(5); // why is your model lowercase?    return view('employee.index', compact('employees'));}看法:<div>    <table>        <tr>            <th>First Name</th>            <th>Last Name</th>        </tr>        @foreach($employees as $employee)            <tr>                <td>{{ $employee->firstname }}</td>                <td>{{ $employee->lastname }}</td>            </tr>        @endforeach    </table>    {{ $employees->links() }}</div>

开满天机

$employeeshow请$data在 foreach 循环中尝试,而不是使用。您的分页值存储在$data而不是在$employeeshow.
打开App,查看更多内容
随时随地看视频慕课网APP