В настоящее время у меня есть вид, управление, в котором перечислены элементы данных. Вместо того, чтобы запускать «редактировать» и «добавлять» действия с отдельными представлениями, у меня появляется соответствующая встроенная форма отображения на странице, когда это необходимо. На форме есть кнопка «Отмена», которая будет скрывать ее.
Прямо сейчас я решаю, что, если таковые имеются, формировать для отображения inline через параметр GET с именем mode
. Поэтому /controller/manage
отобразит элементы, а /controller/manage?mode=edit
отобразит элементы и покажет форму редактирования для правильного элемента данных.
Действие принимает различные другие параметры GET, такие как интервал даты.
Чтобы активировать форму, я создаю ссылку на текущее действие с параметром mode
, объединенным с существующими параметрами в $_GET
. Я использую следующую однострочную:
<?php echo CHtml::link('Edit', array_merge(array('/session/manage', 'mode' => 'edit', 'id' => 6), $_GET)); ?>
Для реализации ссылки "отмена" я использую:
<?php echo CHtml::link('Cancel', array_diff(array_merge(array('/session/manage'), $_GET), array('edit'))); ?>
Мой вопрос: есть ли более чистый способ сделать это? Хотя это работает , это похоже на взлом. Я не нашел никакой документации по созданию URL-адресов, включающих существующие параметры GET. Предоставляет ли Yii встроенный метод, чтобы делать то, что я хочу? Должен ли я переоценить свой общий подход к условным представлениям, что, в свою очередь, может привести к более чистому решению?