为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
BIG阳 2023-06-24 18:15:10
我在我的 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 条记录。帮我。谢谢
查看完整描述

2 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

您的代码没有多大意义,您从数据库中获取所有员工并$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>

查看完整回答
反对 回复 2023-06-24
?
开满天机

TA贡献1786条经验 获得超12个赞

$employeeshow$data在 foreach 循环中尝试,而不是使用。

您的分页值存储在$data而不是在$employeeshow.


查看完整回答
反对 回复 2023-06-24
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信