Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток!
Подскажите, как оптимизировать следующий запрос?
Имеются 3 таблицы: 1.users, 2.projects, 3.project_user.
1. пользователи
2. пректы
3. связь пользователя и проекта (id, user_id, project_id)
В контроллере выполняю следующий метод:
public function changeUserProjects($checkedProjects, int $userId)
{
foreach ($checkedProjects as $projectId) {
$userProjects = new UsersProjects();
$userProjects->user_id = $userId;
$userProjects->project_id = $projectId;
$userProjects->active = 1;
$userProjects->save();
}
$myProjects = $this->UserProjectIds($userId);
return $myProjects;
}
Подскажите как можно оптимизировать эту часть:
...
$userProjects = new UsersProjects();
$userProjects->user_id = $userId;
$userProjects->project_id = $projectId;
$userProjects->active = 1;
$userProjects->save();
...
Я знаю про связь многие ко многим, но не могу понять как ее можно использовать на вставке данных.
Не в сети
При свзяи многие ко многим модель для pivot таблицы (project_user) обычно не делают:
public function changeUserProjects($checkedProjects, int $userId)
{
$user = User::find($userId);
foreach ($checkedProjects as $projectId) {
$user->projects()->attach($projectId, ['active' => 1]);
}
return $user->projects()->pluck('id');
}
Не в сети
Спасибо!
Ваша, помощь мне помогла.
Но, модель мене все таки понадобиться там присутствует - public $timestamps = false;
Или возможно обойтись без этого?
Не в сети
Не в сети
И вправду, работает)
Спасибо!
Не в сети
Страницы 1