SiZE
Новичок
Я работаю с AR в Yii. Одна модель одна таблица. Есть модель "шаблон", наследуется от базового класса, она содержит идентификатор, имя и тип шаблона. Так же есть отдельные модели: шаблон договора, шаблон счет, шаблон накладной и тп, наследуемые от базового класса. У этих моделей в связях указана модель "шаблон", они хранят ее идентификатор. Есть еще модели блоков аблонов.
При создании нового шаблона. Я обращаюсь к нужной модели, например, шаблон договора. Атрибуты этой модели заполняются значениями по умолчанию. Так же в атрибутах я храню объекты других моделей, в т.ч. модель "шаблон" и например модель "пункты договора", которая содержит динамически изменяемое количество пунктов, состоящих из заголовка и описания. При сохранении, я заполняю каждую модель данными и вызываю метод сохранения, если пройдена валидация.
И вот что меня мучает. Когда пользователь будет создавать документ и выбирать шаблон, который он хочет использовать, я буду хранить ссылку из таблицы "шаблон", а не "шаблон договора". Когда пользователь создаст документ, сохранит, у него появится возможность его распечатать.
Меня мучает вот такой вопрос, как правильно получить шаблон со всеми данными? Первое что приходит, передаем ИД "шаблона", получаем "тип". По типу пишем костыль if ( тип == 'шаблон договора') загружаем модель "шаблон договора" ну и дальше все понятно. Но это говно код какой-то получается. Я хотел бы чтобы документ автоматически собирал все данные и подтягивал форму для печати. Что поменять в структуре наследования?
При создании нового шаблона. Я обращаюсь к нужной модели, например, шаблон договора. Атрибуты этой модели заполняются значениями по умолчанию. Так же в атрибутах я храню объекты других моделей, в т.ч. модель "шаблон" и например модель "пункты договора", которая содержит динамически изменяемое количество пунктов, состоящих из заголовка и описания. При сохранении, я заполняю каждую модель данными и вызываю метод сохранения, если пройдена валидация.
И вот что меня мучает. Когда пользователь будет создавать документ и выбирать шаблон, который он хочет использовать, я буду хранить ссылку из таблицы "шаблон", а не "шаблон договора". Когда пользователь создаст документ, сохранит, у него появится возможность его распечатать.
Меня мучает вот такой вопрос, как правильно получить шаблон со всеми данными? Первое что приходит, передаем ИД "шаблона", получаем "тип". По типу пишем костыль if ( тип == 'шаблон договора') загружаем модель "шаблон договора" ну и дальше все понятно. Но это говно код какой-то получается. Я хотел бы чтобы документ автоматически собирал все данные и подтягивал форму для печати. Что поменять в структуре наследования?