У меня есть Пользователи и Операторы, и у каждого Пользователя может быть только один оператор, а у Оператора может быть много пользователей
Итак, в модели оператора у меня есть:
public function profile() {
return $this->hasMany(User::class);
}
И в модели пользователя у меня есть:
public function operator() {
return $this->hasOne(Operator::class);
}
Итак, я думаю, что у меня есть отношения правильно?
Теперь, если у меня есть поле ввода для управления операторами, и у меня есть поле множественного выбора, поэтому я могу выбрать многих пользователей для добавления к этому оператору, поле ввода будет примерно таким:
<select name = "profiles[]" id = "profiles" multiple = "multiple" class = "multiselect2 form-control">
@foreach($profiles as $key => $profile)
<option value = "{{ $profile->id }}">{{ $profile->name }} {{ $profile->lastname }}</option>
@endforeach
</select>
При отправке формы будет опубликован массив всех выбранных профилей $ (это пользователи из пользовательской таблицы)
Что для меня немного сложно, так это то, что когда я создаю нового оператора и выбираю, каких пользователей подключить к оператору, я не знаю, как я могу добавить их и синхронизировать без сводной таблицы, и мне вообще не нужна сводная таблица за это.
у меня есть таблица operators, и она должна содержать идентификаторы операторов и идентификаторы управляемых пользователей
+----+-------------+---------+
| id | operator_id | user_id |
+----+-------------+---------+
| 1 | 3 | 23 |
| 2 | 3 | 28 |
| 2 | 3 | 36 |
+----+-------------+---------+
Итак, как я могу добавить (прикрепить или подключить) идентификаторы пользователей операторов и управляемых пользователей в таблице операторов?
Вот мой текущий код контроллера
$user = new User;
$user->name = $request->name;
$user->email = $request->email;
$user->password = bcrypt($request->password);
$user->save();
$user->operator()->attach(['operator_id' => $user->id, 'profile_id' => $request->profiles]);






Просто используйте красноречивый, чтобы сделать соединение.
DB::select("SELECT * FROM Users u
INNER JOIN operators o dp ON u.id = o.user_id;");
Просто убедитесь, что вы выполняете соединения для каждой таблицы, которую вам нужно подключить.