Я пытаюсь соединить компании, которые используются определенной ролью пользователя.Пользователь с определенной ролью может «работать» для нескольких компаний.Компания может «нанимать» нескольких пользователей.У меня есть 5 таблиц (пользователи, role_user, роли, компании и company_user)
Отношения моделей:
App\User:
public function roles()
{
return $this
->belongsToMany('App\Role')
->withTimestamps();
}
public function companies()
{
return $this
->belongsToMany('App\Company')
->withTimestamps();
}
App\Role:
public function users()
{
return $this
->belongsToMany('App\User')
->withTimestamps();
}
App\Companies:
public function users()
{
return $this->belongsToMany('App\User'); // with user_role ??
}
Контроллер компаний
public function edit(Request $request, $id) {
$company = Company::findOrFail($id);
$users = User::where('role_id',4)->pluck('username')->all(); // no role_id column
$users = User::pluck('username','id')->all(); // returns all users
return view('companies.edit', compact(['company','users']));
}
public function update(Request $request, $id) {
/* TODO */
}
Редактировать представление
{!! Form::select('users[]', $users, null, ['class' => 'form-control', 'multiple' => 'multiple']) !!}
Я хочу назначить пользователей с определенной ролью пользователя для этих компаний.Есть ли способ установить отношение или, возможно, область?
Бонусный вопрос :) Есть ли простой способ отобразить объединенное значение в раскрывающемся списке?Имя + Фамилия вместо имени пользователя?