Yii控制器参数

时间:2013-03-28 23:37:42

标签: yii

创建此方法时

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

在yii控制器内部,并尝试在浏览器中访问它,我收到错误400.

如何设置yii,以便我输入: / controller / test / text它只是在屏幕上打印字符串'text'而不是返回无效的请求错误?

我已经验证了网址是否正确。如果我写

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

然后转到/ controller / test / text然后它工作得很好。

如何设置yii以便控制器操作可以接受URL中的参数值?

3 个答案:

答案 0 :(得分:3)

您必须修改urlManager中的config.php重写规则数组以包含

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

将控制器功能设为

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

答案 1 :(得分:1)

  

@curtis:谢谢。那   帮助! <controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action>    - Curtis Colly 2013年3月31日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
}

答案 2 :(得分:0)

尝试使用网址:/controller/test/parameter/text,它应该有效。 @topher建议的网址规则也是正确的。