Usa*_*ama 1 php pagination laravel laravel-5.5
我在角色模型中定义了以下用户角色关系(很多):
public function users()
{
return $this->belongsToMany('App\User');
}
Run Code Online (Sandbox Code Playgroud)
现在,我想向所有用户展示特定角色。我执行以下命令:
$list = Role::find(1)->users()->select('name')->orderBy('name')->paginate(10);
Run Code Online (Sandbox Code Playgroud)
这里$list包含所有属于ID为1且正确的角色的用户。但是问题是:在其上添加断点$list时表明:检索所有用户模型的属性就像select('name')没有作用一样。这是一个很大的问题,尤其是当我想返回$listas json时。即使在$hidden用户模型数组中,也会检索用户密码。我的问题是:
为什么paginate()在querybuilder上不尊重select()模型$hidden数组中的属性?
注意:我知道还有其他解决方案可以实现我想要的。我只想回答我的问题,以了解发生了什么事?
select('name')没有效果,因为paginate()方法将列作为第二个参数
$list = Role::find(1)->users()->orderBy('name')->paginate(10, ['name']);
Run Code Online (Sandbox Code Playgroud)
您可以在这里阅读有关参数和方法的更多信息 https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Builder.html#method_paginate