Employee, Service, Price
Employee и Service это many-to-many. Employee и Price это One-to-one.
На одной странице инпуты с полями, которые относятся к Employee, Service и Price.
Сейчас делаю так:
$employee = new Employee;
....
$employee->save();
$employee->price()->create([
....
]);
Соответственно, в чем вопрос: можно ли как-то один раз в самом конце сделать что-то типа $employee->save();, а не делать вставки после заполнения каждой модели?
В django можно)
Вместо price->create() делай price()->make()
и потом $employee->save() ?
create сделает рекорд в базе, а make только подготовит модель к сохранению
ага, понял.
Да, если не хочешь сразу сохранять, а ещё что-то с этой моделькой делать
Вот кстати действительно. Пхп позволяет реализовать подобную магию. Почему ее ни в ларке, ни в Yii2 не завезли?)
Магиянинужна
Хорошо, а как быть с отношением Many-to-Many? Сейчас я так же пишу сразу в базу $employee->services()->saveMany($services); Есть что-то типа makeMany? По аналогии с make()? Спасибо!
с many-to-many если в pivot таблице нету сторонних данных, то и подготовка не нужна. А если есть данные и очень чешеться с ними рабатать как с моделью, тогда для этих целей есть Pivot модельки :)
там поля employee_id, service_id и additional_price
Ну тогда через Pivot модель
Обсуждают сегодня