реляционная ActiveRecord

Интересует  такой  вопрос,  как  работать  с  формами  редактирования если  связь будет один  ко многим и  можно ли  и  как  сохранять изменения  в связанных  таблицах . причем  сразу по нескольким  строкам.

Если  можно примеры  кода.

Спасибо.

Ну я напрмиер не фанат всякой "магии" при сохранении (как, например, сейчас в CakePHP сделано - все сохраняется в один вызов saveAll), поэтому предпочитаю по старинке ручками.

А именно,

if ($mymodel->save()) { 


    # если сохранилось - то имеем id родительской записи в $mymodel->id


    foreach (...) {


       # в цикле сохраняем связанные модели


       $record->parent_id = $mymodel->id;


       $record->save();


    }


}

Еще люблю использовать uuid, в этом случае можно сохранить дочерние записи ДО сохранения родительской ))

Quote

Ну я напрмиер не фанат всякой "магии" при сохранении (как, например, сейчас в CakePHP сделано - все сохраняется в один вызов saveAll), поэтому предпочитаю по старинке ручками.

А именно,

if ($mymodel->save()) { 


    # если сохранилось - то имеем id родительской записи в $mymodel->id


    foreach (...) {


       # в цикле сохраняем связанные модели


       $record->parent_id = $mymodel->id;


       $record->save();


    }


}

Еще люблю использовать uuid, в этом случае можно сохранить дочерние записи ДО сохранения родительской ))

делая  подобным  образом,  а  что такое  uuid ?

Ну, вообще говоря, если уметь генерить в известной степени уникальный идентификатор, то его можно использовать в качестве первичного ключа (вместо autoincrement).

Другое дело - как его генерить (по сути - какой процент коллизий дает тот или иной алгоритм). Где-то в General discussion есть ветка с обсуждением.

Я пользуюсь 32-байтным ключом, алгоритм честно притырил из CakePhp.

При этом модели я наследую от промежуточного класса, где в beforeSave сидит автогенерация ключа в случае его отсутствия (хотим - руками его задаем в контроллере, когда надо, а хотим - не заполняем, сам заполнится).

Quote

Ну, вообще говоря, если уметь генерить в известной степени уникальный идентификатор, то его можно использовать в качестве первичного ключа (вместо autoincrement).

Другое дело - как его генерить (по сути - какой процент коллизий дает тот или иной алгоритм). Где-то в General discussion есть ветка с обсуждением.

Я пользуюсь 32-байтным ключом, алгоритм честно притырил из CakePhp.

При этом модели я наследую от промежуточного класса, где в beforeSave сидит автогенерация ключа в случае его отсутствия (хотим - руками его задаем в контроллере, когда надо, а хотим - не заполняем, сам заполнится).

Интересный  подход  с 32-байтным  ключом .  обычно генерю самой  базой  первичный  ключ.

Интересно все  таки  если  есть  пару  таблиц  и  если  мы  к  ним  обращаемся  с  помощью модели реляционной AR  можно править связанные таблицы  так  просто как  и в случае  доступа к  данным с  помощью AR

Ответьте  кто  знает  и  огромная  просьба поделитесь  если  есть примерами.