0

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

来自用户表:id、name、email

从角色表中:名称

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

$users = User::all(); 

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

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

谢谢。

4

3 回答 3

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

急切加载是您正在寻找的内容,请阅读文档 :)

于 2013-03-24T20:15:44.807 回答
0

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

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

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

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

于 2013-01-30T17:19:41.720 回答
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

于 2013-03-26T19:21:54.433 回答