Laravel Eloquent 并梳理数据发送到 View

问题描述 投票:0回答:3

我正在尝试找出一种方法将两个表中的数据组合成一个变量,然后将其发送到我的视图。我使用 Authority 作为身份验证包,因此设置了以下表格:用户、角色、role_user。我想将以下数据放入单个变量中。

来自用户表: 身份证、姓名、电子邮件

从角色表中: 名字

以下返回users表中的所有用户数据:

$users = User::all(); 

但是,我想制作一条链,可以获取角色表中存储的相关数据?我希望所有用户和每个用户的所有角色都在一起。

虽然我可以找到有助于获取单个记录的相关数据的示例,但我无法找到任何关于检索具有相关数据的整个表的参考。

谢谢。

php laravel eloquent
3个回答
1
投票
$users = User::with('roles')->get()

预加载就是您正在寻找的,请阅读文档:)


0
投票

我不是 100% 确定你在追求什么,我认为你应该与 Eloquents 方法建立关系。但是,如果您正在寻找一种方法来合并两个模型返回的数据,您可以执行以下操作:

$users = User::all();
$roles = Roles::all(); 

$array = array_merge($users->toArray(), $roles->toArray());
return Response::json($array);

您可以进行模型调用,以便它们准确地返回您想要的内容,然后将它们合并在一起。如果您希望一个模型返回特定的内容,只需为其创建一个函数即可。


0
投票

你需要使用类似的东西:

$user = User::get();
$roles = Roles::get();

$user .= (object) $roles; //because of that both them are object array and we have to combine them as object array...

您可以将数据传递给View

return View:make('templatefile')//or Redirect to_route whatever
      ->with('user', $user);

但最好的方法是在你的情况下属于_to。请阅读文档:

http://laravel.com/docs/database/eloquent#relationships

© www.soinside.com 2019 - 2024. All rights reserved.