Ссылка Yii с [ в качестве параметра

С помощью GII я создал список записей. Я использую представление администратора, поэтому они отображаются в виде таблицы. Над таблицей находится поиск со статусом записей. Когда раскрывающийся список статуса изменяется, я отправляю форму, и в таблице выполняется поиск. Я хочу, чтобы в представлении администратора по умолчанию отображались только активные записи, поэтому я хочу создать ссылку в меню на это: medium/admin/?Medium[status]=active Фактическая ссылка, конечно, medium/admin/?Medium %5Bstatus%5D=активен

Я пытался сделать это с помощью:

CHtml::link('Mediums', array("medium/admin", array('Medium[status]' => 'active')))
CHtml::link('Mediums', array("medium/admin", array('Medium%5Bstatus%5D' => 'active'))) 
CHtml::link('Mediums', array("medium/admin", array('Medium' => array('status' => 'active')))) 

Но все ссылки неверны, поэтому по умолчанию в таблице отображаются все записи.

Как правильно создать такую ​​ссылку?

Спасибо.


person Mihai P.    schedule 21.04.2013    source источник
comment
С php или javascript все в порядке?   -  person Tim    schedule 21.04.2013
comment
PHP, я хочу использовать CHtml::link('Mediums', потому что это правильный способ сделать это в Yii. Я просто не знаю правильного формата для этого.   -  person Mihai P.    schedule 22.04.2013


Ответы (1)


http://www.yiiframework.com/doc/api/1.1/CHtml#link-detail и http://www.yiiframework.com/wiki/48/ будет вам полезен.

CHtml::link(CHtml::encode('Mediums'),array("medium/admin", "status"=>"active"));

Затем убедитесь, что в вашем контроллере есть что-то вроде этого:

public function actionAdmin($status)

Теперь вы можете использовать 'status' в своем действии.

person ineersa    schedule 22.04.2013
comment
Спасибо, но мне не нужна переменная с именем status, мне нужна переменная с именем Medium[status]. - person Mihai P.; 23.04.2013
comment
Статус не является переменной, это поле модели Medium. Чтобы передать параметры через CHtml::link(), вам нужно принять их в соответствующем действии в контроллере. Правильно, как я напечатал выше. public function actionYourActionInControler($status) то вы можете сделать что-то подобное, если вы используете ActiveRecord $model=Medium::model()->findAll('status=:status', array(':status'=>$status)); Теперь $model будут содержать все ваши записи с $status заданными параметрами ссылки. Теперь передайте это $model вашему представлению $this->render('admin',array( 'model'=>$model,));. Пользуйтесь своим мнением и будьте счастливы. - person ineersa; 23.04.2013
comment
Вы частично правы. Статус является одновременно столбцом и переменной как для модели, так и для контроллера. Я, конечно, могу сделать именно это, но вы говорите мне делать, но я не хочу этого. Я хочу, чтобы мое приложение Yii было как можно ближе к демонстрациям. В своих собственных примерах Yii называет поля поиска Post[status]. Я тоже так их называю. Я просто хочу иметь возможность передавать его как переменную GET, используя внутреннюю функцию yii CHTML::link(). - person Mihai P.; 24.04.2013
comment
Тогда сделайте это так. yiiframework.com/forum /index.php/topic/ - person ineersa; 24.04.2013
comment
Я могу получить параметр из GET в URL-адресе, я не могу создать URL-адрес, как мне это нужно. - person Mihai P.; 24.04.2013