什么是基于刀片内 compact
方法使用的Model变量上的某个选择过滤器检索列值的正确方法 . (Larevl 5)
我读到从视图查询数据库staright是一个不好的做法,因此我按照惯例利用 compact
方法查看所需的数据
但是,在我需要根据第一个表中刀片内的foreach循环返回的某个列值查询另一个表的情况下,我无法找出正确的方法
示例:我有两个型号 User
& Group
架构 User
表
id,name,email,group_id
方案组表id
, groupname
这是UserController - > compact方法
$users = \App\User::all(array('id','name','email','group_id'));
$groups = \App\Group::all(array('id','group_name'));
return view('user.index', compact('users','groups'));
这里刀片需要它们
@foreach ($users as $user)
<tr>
<th>{{$user->id}}</th>
<th>{{$user->name}}</th>
<th>{{$user->email}}</th>
<th>
<!-- Here i need to run something like
select group_name from group where id = $user->id -->
{{$groups->where('id','=',$user->group_id) }}
</th>
<th>Actions</th>
</tr>
@endforeach
我知道这会返回一个数组,我在这里有两个问题
-
如何从基于组的组模型中获取
group_name
列的值 . 在foreach循环中id
=$user->id
-
由于从刀片服务器查询数据库是一种不好的做法,当如何知道where子句参数时,如何通过压缩机将数据从控制器传递到刀片来利用模型中的值 .
Edit 1:
我将最后一个组查询修改为
<th>@if($groups->where('id','=',$user->group_id))
@foreach($groups as $group)
{{$group->group_name}}
@endforeach
@endif
</th>
而且我能够得到结果,但这又不是一个正确的方法,所以问题仍然没有答案
2 回答
在
User
模型中在
Group
模型中在你的控制器中
现在在你看来你可以做到
我很欣赏你知道“从视图中查询是不好的做法” . 你为什么不用join .
然后将结果传递给您的视图并循环遍历它 . 在这里,您将拥有与其组数据相关联的每个用户数据 .