trh*_*h88 2 php laravel eloquent laravel-4
这个问题是关于Laravel和PHP的.
我正在构建一个表单,允许用户(玩家)使用复选框分配给团队/取消分配.
许多用户可以属于许多团队.我有一个数据透视表team_user来管理多对多关系.
我无法根据数据透视表中是否存在关联来填充复选框.
到目前为止,我将它们放在两个单独的"位"中,您可以在下面看到:
我的控制器:
$users_checked = $team->users()->get();
$users = User::all();
return View::make('team/addplayers', compact('users', 'team', 'users_checked'));
Run Code Online (Sandbox Code Playgroud)
我的看法:
@foreach ($users_checked as $user_checked)
<p>
{{ Form::checkbox('player[]', $user_checked->id, true) }}
{{ Form::label('email', $user_checked->email) }}
</p>
@endforeach
@foreach($users as $user)
<p>
{{ Form::checkbox('player[]', $user->id ) }}
{{ Form::label('email', $user->email) }}
</p>
@endforeach
Run Code Online (Sandbox Code Playgroud)
将这些组合成一个列表的最明智的方法是什么,如果关联存在于枢轴中,则勾选复选框,如果不存在则不勾选?
非常感谢您的帮助!
答案让我走上正轨,谢谢.我的实际解决方案如下:
在我的控制器中:
public function showAddPlayer(Team $team)
{
$users = User::all();
return View::make('team/addplayers', compact('users', 'team'));
}
Run Code Online (Sandbox Code Playgroud)
在我看来:
@foreach ($users as $user)
<p>
{{ Form::checkbox('player[]', $user->id, $team->users->contains($user->id)) }}
{{ Form::label('email', $user->email) }}
</p>
@endforeach
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1800 次 |
| 最近记录: |