Laravel Eloquent并将数据组合发送到View

时间:2013-01-30 14:22:18

标签: laravel eloquent

我正试图想出一种方法将两个表中的数据组合成一个变量然后发送到我的视图。我使用Authority作为我的身份验证包,因此我设置了以下表:users,roles,role_user。我想将以下数据转换为单个变量。

来自users表: id,姓名,电子邮件

从角色表: 名称

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

$users = User::all(); 

但是,我想创建一个链,可以将相关数据存储在角色表中?我希望所有用户和所有每个用户角色在一起。

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

感谢。

3 个答案:

答案 0 :(得分:1)

$users = User::with('roles')->get()

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

答案 1 :(得分:0)

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

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

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

您可以进行模型调用,以便它们准确地返回您所追求的内容,然后将它们合并在一起。如果你想让一个Model返回一些特定的东西,只需为它创建一个函数。

答案 2 :(得分: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);

但在你的情况下,最好的方法是belongs_to。请阅读文档:

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