Yii2:如何使用“漂亮的网址”调用网址中的操作

时间:2016-03-30 20:37:28

标签: php controller yii2 pretty-urls

如果没有漂亮的网址,则会有http://192.168.100.5/index.php?r=tweet/statistic&from=20160320&to=20160325视图并且效果很好。

正如文档所说,当'enablePrettyUrl' => true /tweet调用默认操作时 - 它也可以正常工作

但对于其他行动,路线应为/tweet/statistic。但是有404错误。

在这种情况下如何调用app \ controllers \ TweetController actionStatistic()?

补充:我使用基本模板

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        ['class' => 'yii\rest\UrlRule',
         'controller' => 'tweet'],
        'GET tweet/statistic' => 'tweet/statistic'
    ],
],

当我尝试http://192.168.100.5/tweet/statistic

的curl请求时

HTTP / 1.1 404 Not Found

如果'enablePrettyUrl' => falsehttp://192.168.100.5/index.php?r=tweet/statistic"运行良好

1 个答案:

答案 0 :(得分:1)

请注意,这是一个rest API,因为这会改变很多事情。关键是你必须声明规则,以便Yii2现在知道如何处理它们。你必须告诉它这将是什么类型的请求以及请求的去向。与普通应用程序相比,这是非常不同的,因为这是一个rest API。

我的工作配置:

 'urlManager' => [
            'enablePrettyUrl' => true,
            'enableStrictParsing' => true,
            'showScriptName' => false,
            'rules' => [
                [
                    'class' => 'yii\rest\UrlRule',
                    'controller' => [
                        'v1/client',
..........................
                    ]
                ],
                'GET v1/clients/info' => 'v1/client/info',
                'POST v1/settings/suburb' => 'v1/setting/suburb',
            ],
        ],