Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Есть таблица с фильмами:
id, name
Есть таблица с людьми:
id, name
Есть связующая таблица:
id, film_id, person_id, post
Где поле post это должность.
Проблема в том что у одного человека может быть несколько должностей в одном фильме:
Пример:
режиссер: Фрэнк Дарабонт
сценарий: Фрэнк Дарабонт, Стивен Кинг
Фрэнк Дарабонт — в базе имеет id=1
Стивен Кинг — в базе имеет id=2
Судя по документации добавлять данные в связующую таблицу нужно так
$user->roles()->sync(array(1 => array('expires' => true)));
И вот тут проблемка возникает исходя из наших данных запрос будет таким
$film->people()->sync(array(
1 => array('post' => 'режиссер'),
1 => array('post' => 'сценарий'),
2 => array('post' => 'сценарий'),
));
Ну и сохранится только то что Фрэнк Дарабонт работал над сценарием т.к. мы потом переопределили ключ 1
Изменено la2ha (08.02.2014 00:36:40)
Не в сети
$film->people()->sync(array()); // удаляем связанных с этим фильмом людей
$film->people()->attach(1, array('post' => 'режиссер'));
$film->people()->attach(1, array('post' => 'сценарий'));
$film->people()->attach(2, array('post' => 'сценарий'));
Изменено la2ha (08.02.2014 06:47:24)
Не в сети