0

当我创建这个方法

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

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

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

我已经验证了 URL 是正确的。如果我写

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

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

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

4

3 回答 3

3

您必须编辑您的urlManager重写规则数组config.php以包含

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

您的控制器功能为

actionTest($parameter){
   print($parameter);
}
于 2013-03-29T00:15:54.243 回答
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好像您想使用 $parameter 一样,您应该将 id 更改为参数。

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

在控制器中,您还可以键入

actionTest(){
    print($_GET['parameter']); //or $_REQUEST
}
于 2014-03-21T19:14:23.953 回答
0

试试 url: /controller/test/parameter/text,它应该可以工作。@topher 建议的 url 规则也是正确的。

于 2013-03-29T18:01:45.543 回答