170 похожих чатов

Приветствую! Я, извиняюсь, что вмешиваюсь, но есть вопрос по теме. Есть модели

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();, а не делать вставки после заполнения каждой модели?

12 ответов

15 просмотров

В 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 модель

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта