2013-03-28 146 views
0

當我創建一個警予控制器內部的這種方法的Yii控制器參數

actionTest($parameter){ 
    print($parameter); 
} 

並嘗試訪問它在瀏覽器中我得到一個錯誤400

我如何設置警予,這樣,如果我輸入: /controller/test/text它只是在屏幕上輸出字符串'text',而不是返回無效的請求錯誤?

我已經驗證網址是否正確。如果我寫

actionTest(){ 
    print('text'); 
} 

然後去/控制器/測試/文本,那麼它工作得很好。

如何設置yii以便控制器操作可以接受URL中的參數值?

+0

你就輸了花花公子 –

回答

3

你必須編輯您的config.phpurlManager重寫規則陣列包括

'urlManager'=>array(
    .... 
    'rules'=>array(
     'controller/test/<parameter:\w+>' => 'controller/test', 
     ... 
    ), 
), 

與您的控制器功能

actionTest($parameter){ 
    print($parameter); 
} 
+0

這沒有奏效。有什麼我可以做的,以添加此功能的任何控制器的參數? –

+0

謝謝。這有幫助! '//'=>'/' –

0

嘗試的網址:/controller/test/parameter/text,它應該工作。 @topher建議的網址規則也是正確的。

1

@curtis:謝謝。 幫助! <controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action> - 柯蒂斯Colly 3月31日在'13 3:27

規則<controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action>行會,如果你想使用$參數應更改ID,以參數的最後一個參數發送到控制器$id

<controller:\w+>/<action:\w+>/<parameter:\w+>'=>'<controller>/<action> 

在控制器還可以鍵入

actionTest(){ 
    print($_GET['parameter']); //or $_REQUEST 
}