подскажите, есть ли стандартные средства для создания формы (может быть через ActiveForm виджет) для следующей сиутации.
Есть модель AR, есть связь с другой моделью AR типа HAS_MANY
для примера - запись блога имеет множество тегов.
нужно сделать редактирование этих тегов вместе с записью
форма для редактирования записи сгенерилась CRUD-ом.
Но кроме текущей модели записи есть массив ассоциированных записей - $model->tags
вот как для них строить форму (я в данный момент использую foreach($model->tags as $tag) и для каждой модели строю поля через <?php echo CHtml::textField(‘tags[’.$tag->tag_id.’]’,$tag->tag_name);?>
есть ли более элегантное решение? Это похоже больше на "костыль"…
Я бы для тегов вообще одно текстовое поле только сделал. Вводим теги через запятую, а затем в методе afterSave() записи блога парсим это поле и вставляем слова в таблицу тегов. Если не ошибаюсь, то в примере блога на Yii именно так и делается.
Спасибо за быстрый ответ, но меня интересует больше не практика, а теория.
а теги - просто для примера.
предположим что это будут… Вопрос и возможные варианты ответа
примерная структура данных:
tbl_questions
q_id //pk
q_question //описание
tbl_answers
a_id //pk
q_id //fk
a_answer //описание ответа
tbl_question_answers
q_id //fk1
a_id //fk2
Ответы хранятся в отдельной таблице. каждый ответ имеет свой уникальный id, при апдейте ответа нужно сохранять id ответа. Один вопрос может иметь несколько ответов.
И еще раз, меня интересует больше теория, как поступать в такой ситуации, а не практика, что это можно было бы реализовать как-то иначе…