2013-04-21 79 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