【问题标题】:Yii Controller ParametersYii 控制器参数
【发布时间】:2013-03-28 23:37:41
【问题描述】:

当我创建这个方法时

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

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

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

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

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

然后转到 /controller/test/text 就可以了。

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

【问题讨论】:

    标签: yii


    【解决方案1】:

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

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

    你的控制器功能为

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

    【讨论】:

    • 那行不通。我可以做些什么来将此功能添加到带有参数的任何控制器?
    • 谢谢。这有帮助!!! '//'=>'/'
    【解决方案2】:

    @curtis:谢谢。那 帮助!!! &lt;controller:\w+&gt;/&lt;action:\w+&gt;/&lt;id:\w+&gt;'=&gt;'&lt;controller&gt;/&lt;action&gt; – Curtis Colly 2013 年 3 月 31 日在 3:27

    规则&lt;controller:\w+&gt;/&lt;action:\w+&gt;/&lt;id:\w+&gt;'=&gt;'&lt;controller&gt;/&lt;action&gt; 行会将最后一个参数作为$id 发送到控制器,如果您想使用$parameter,您应该将id 更改为参数。

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

    你也可以在控制器中输入

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-26
        • 2023-04-03
        • 1970-01-01
        相关资源
        最近更新 更多