Интересует такой вопрос, как работать с формами редактирования если связь будет один ко многим и можно ли и как сохранять изменения в связанных таблицах . причем сразу по нескольким строкам.
Если можно примеры кода.
Спасибо.
Интересует такой вопрос, как работать с формами редактирования если связь будет один ко многим и можно ли и как сохранять изменения в связанных таблицах . причем сразу по нескольким строкам.
Если можно примеры кода.
Спасибо.
Ну я напрмиер не фанат всякой "магии" при сохранении (как, например, сейчас в CakePHP сделано - все сохраняется в один вызов saveAll), поэтому предпочитаю по старинке ручками.
А именно,
if ($mymodel->save()) { # если сохранилось - то имеем id родительской записи в $mymodel->id foreach (...) { # в цикле сохраняем связанные модели $record->parent_id = $mymodel->id; $record->save(); } }
Еще люблю использовать uuid, в этом случае можно сохранить дочерние записи ДО сохранения родительской ))
Quote
А именно,
if ($mymodel->save()) { # если сохранилось - то имеем id родительской записи в $mymodel->id foreach (...) { # в цикле сохраняем связанные модели $record->parent_id = $mymodel->id; $record->save(); } }
Еще люблю использовать uuid, в этом случае можно сохранить дочерние записи ДО сохранения родительской ))
делая подобным образом, а что такое uuid ?
Ну, вообще говоря, если уметь генерить в известной степени уникальный идентификатор, то его можно использовать в качестве первичного ключа (вместо autoincrement).
Другое дело - как его генерить (по сути - какой процент коллизий дает тот или иной алгоритм). Где-то в General discussion есть ветка с обсуждением.
Я пользуюсь 32-байтным ключом, алгоритм честно притырил из CakePhp.
При этом модели я наследую от промежуточного класса, где в beforeSave сидит автогенерация ключа в случае его отсутствия (хотим - руками его задаем в контроллере, когда надо, а хотим - не заполняем, сам заполнится).
Quote
Другое дело - как его генерить (по сути - какой процент коллизий дает тот или иной алгоритм). Где-то в General discussion есть ветка с обсуждением.
Я пользуюсь 32-байтным ключом, алгоритм честно притырил из CakePhp.
При этом модели я наследую от промежуточного класса, где в beforeSave сидит автогенерация ключа в случае его отсутствия (хотим - руками его задаем в контроллере, когда надо, а хотим - не заполняем, сам заполнится).
Интересный подход с 32-байтным ключом . обычно генерю самой базой первичный ключ.
Интересно все таки если есть пару таблиц и если мы к ним обращаемся с помощью модели реляционной AR можно править связанные таблицы так просто как и в случае доступа к данным с помощью AR
Ответьте кто знает и огромная просьба поделитесь если есть примерами.