2013-04-21 77 views
0

使用GII我创建了一个记录列表。我使用管理视图,以便它们处于表格视图中。在表格的顶部是具有记录状态的搜索。当状态下拉更改时,我提交表单并查找表格。我希望管理员的默认视图只显示活动记录,所以我想在菜单中创建一个链接: medium/admin /?Medium [status] = active 当然的实际链接是 medium/admin ?/中型%5Bstatus%5D =活跃Yii链接[作为参数

我试图做到这一点的:

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')))) 

但是所有的链接是不正确的,因此表的默认视图是上显示的所有记录。

什么是创建这种链接的正确方法?

谢谢。

+0

使用PHP或JavaScript是好吗? – Tim 2013-04-21 19:09:14

+0

PHP,我想使用CHtml :: link('Mediums',因为这是在Yii中完成的正确方法,我只是不知道它的正确格式 – 2013-04-22 01:24:35

回答

0

http://www.yiiframework.com/doc/api/1.1/CHtml#link-detailhttp://www.yiiframework.com/wiki/48/将会对您有用。

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

然后确保你的控制器,你有这样的事情:

public function actionAdmin($status) 

现在你CA在你的行动使用'status'

+0

谢谢,但我不想要一个名为status ,我想要一个叫Medium [status]的状态 – 2013-04-22 23:20:21

+0

状态不是变量,它是模型“Medium”的一个字段,要通过CHtml :: link()传递参数,你需要在控制器中的propper动作中接受它们。如果你使用ActiveRecord''model = Medium :: model() - > findAll('status =:status',array(':status)'public function actionYourActionInControler($ status)'' '=> $ status));'现在'$ model'将包含所有带有'$ status'的记录给定的链接参数,现在将'$ model'传递给您的视图'$ this-> render('admin',array ( 'model'=> $ model,));'。使用它你的看法并且很高兴 – ineersa 2013-04-23 07:58:34

+0

你是部分正确的。模型和控制器的变量。我当然可以做到这一点,但你告诉我要做,但我不想那样做。我想尽可能保持我的Yii应用程序尽可能接近演示。在他们自己的例子中,Yii用“Post [status]”命名搜索字段。这正是我如何命名它们的过程。我只是希望能够使用内部的yii CHTML :: link()函数将其作为GET变量传输。 – 2013-04-24 10:34:25