我试图获取申请表中的员工名单。
所以现在我得到了这个观点:
@foreach($getteam as $team)
<!-- Begin row -->
<div class="panel-group col-sm-offset-1 col-sm-10">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{ $team->role->name }}</h3>
</div>
<div class="panel-body">
<ul class="list-group">
<li class="list-group-item">
<img src="{{ Config::get('app.url') }}/public/img/avatar.jpg" style="float:left;margin-right:15px;padding-bottom:5px;" class="img-circle" alt="{{ $team->username }}" width="75" height="75">
<h4 style="color:{{ $team->role->colour }};">{{ $team->username }}</h4>
<p>Een klein beetje info over wie ik ben enzo... :p</p>
</li>
</ul>
</div>
</div>
</div>
<!-- End row -->
@endforeach
使用此查询:
SELECT * FROM `user`
INNER JOIN `role` ON `user`.`role_id` = `role`.`id`
WHERE `role_id` >= '4'
ORDER BY `role`.`id` DESC
或
User::with('Role')
->join('role', 'user.role_id', '=', 'role.id')
->where('role_id', '>=', '4')
->orderBy('role.id', 'DESC')
->get();
现在,非常好,
这样可以让用户得到这样的结果: http://prntscr.com/8a6v60
那是不我想要的。
这就是我想要的:http://prntscr.com/8a6vgo
因此,当组相同时,它们必须位于相同的UL
。
修改 这是我现在的观点:
<!-- Begin row -->
<div class="panel-group col-sm-offset-1 col-sm-10">
@foreach($roles as $role)
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{ $role->name }}</h3>
</div>
<div class="panel-body">
<ul class="list-group">
@foreach($role->user() as $user)
<li class="list-group-item">
<img src="{{ Config::get('app.url') }}/public/img/avatar.jpg" style="float:left;margin-right:15px;padding-bottom:5px;" class="img-circle" alt="{{ $user->username }}" width="75" height="75">
<h4 style="color:{{ $role->colour }};">{{ $user->username }}</h4>
<p>Een klein beetje info over wie ik ben enzo... :p</p>
</li>
@endforeach
</ul>
</div>
</div>
@endforeach
</div>
<!-- End row -->
这是控制器:
public function ForumTeam()
{
$roles = Role::all();
$getTeam = User::with('Role')->join('role', 'user.role_id', '=', 'role.id')->where('role_id', '>=', '4')->orderBy('role.id', 'DESC')->get();
return View::make('team')->with('getteam', $getTeam)->with('roles', $roles);
}
这是模特。
<?php
class Role extends Eloquent
{
protected $table = 'role';
public function user()
{
return $this->belongsTo(User::class);
}
}
现在我只获得所有角色名称,而不是正确的东西。
答案 0 :(得分:1)
使用用户和角色之间关系的反向。获取角色并获取角色,而不是获取用户,您可以获得相应的用户(这当然要求Role
模型具有定义关系的users()
方法:
// You can of course use conditions here to filter out what roles you want loaded
$roles = Role::all();
然后遍历角色,并为每个角色迭代其用户:
<div class="panel-group col-sm-offset-1 col-sm-10">
@foreach($roles as $role)
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{ $role->name }}</h3>
</div>
<div class="panel-body">
<ul class="list-group">
@foreach($role->users as $user)
<li class="list-group-item">
<img src="{{ Config::get('app.url') }}/public/img/avatar.jpg" style="float:left;margin-right:15px;padding-bottom:5px;" class="img-circle" alt="{{ $user->username }}" width="75" height="75">
<h4 style="color:{{ $role->colour }};">{{ $user->username }}</h4>
<p>Een klein beetje info over wie ik ben enzo... :p</p>
</li>
@endforeach
</ul>
</div>
</div>
@endforeach
</div>