首页 > 解决方案 > Eloquent Query Builder 中的 Laravel 分页

问题描述

我需要帮助来使用 Laravel 分页对与另一个有关系的表进行分页。我收到一个错误提示...

函数的参数太少

控制器

public function users()
{
    $users = User::join('customers', 'users.id', '=', 'customers.user_id')
        ->select('customers.*')->orderBy('customers.name', 'asc')
        ->paginate(2);

    return view('paginate', ['users' => $users]);
}

看法

<div class="container">
    <table class="table">
        <thead>
        <tr>
            <th>Name</th>
            <th>Location</th>
            <th>Age</th>
        </tr>
        </thead>
        <tbody>
        @foreach ($users->customers() as $customer)
            <tr>
                <td>{{$customer->id}}</td>
                <td>{{$customer->location}}</td>
                <td>{{$customer->age}}</td>
            </tr>
        @endforeach
        </tbody>
    </table>
    {{$users->customers()->links()}}
</div>
<script type="text/javascript" src="{{asset('js/frontend_js/jquery.min.js')}}"></script>
<script type="text/javascript" src="{{asset('js/frontend_js/bootstrap.min.js')}}"></script>

关系(两个表之间)

public function customers()
{
    return $this->hasMany('App\Customer')->paginate(2);
}

public function users()
{
    return $this->belongsTo('App\User');
}

标签: phplaravel-query-builderlaravel-6laravel-pagination

解决方案


替换此行

{{$users->customers()->links()}}

有了这个

{{$users->links()}}

pagination从此关系中删除。

public function customers(){

       return $this->hasMany('App\Customer');
    }

推荐阅读