我有3张桌子
users: id, full_name
user_projects, user_id, project_id // Pivot table
projects: id, name
在用户表格中,我有 10位用户
在项目A中,我希望3个用户执行项目A.
然后我创建了存储项目A的函数
public function store(StoreRequest $request)
{
$data = $request->all();
try {
$project = new Project();
$attribute = array_only($data, $project->getFillable());
$project = $project->store($attribute);
if (!empty($project)) {
$project->user()->attach($request->user_id); // Insert to pivot table
}
return redirect()->route('project.index')->with('flashSuccess', 'Create is successful!.');
} catch (Exception $ex) {
Log::error($ex);
return view('errors.404');
}
}
然后当我按下编辑时,我想要显示所有10个用户的用户表和3个加入项目A的用户(数据透视表中的用户)已选中。
我可以在视图中选择加入项目A的所有用户,但我可以在users表中显示所有其他用户。
以下是我的观点:
<div class="col-md-4">
<select id="dates-field2" name="user_id[]" class="multiselect-ui form-control" multiple="multiple">
@foreach($project->user as $user)
<option selected="selected" value="{{$user->id}}">{{$user->full_name}}</option>
@endforeach
</select>
</div>
这是我的模特
public function user()
{
return $this->belongsToMany('App\User', 'user_projects');
}
请帮忙。
答案 0 :(得分:0)
您可以检查您的用户是否已经在当前项目中 ($ project_id是您当前的项目)
<div class="col-md-4">
<select id="dates-field2" name="user_id[]" class="multiselect-ui form-control" multiple="multiple">
@foreach($users as $user)
<option {{ in_array($project_id, $user->projects->pluck('project_id')->toArray()) ? 'selected' : ''}} value="{{$user->id}}">{{$user->full_name}}</option>
@endforeach
</select>