1

我有一个 yii rest api 的问题。我将它配置为按照 yii 框架页面上的教程工作,但在那之后我意识到我的 api 工作但不是我的 PAGE 的一些大部分,因为它基于 GET URL 格式而不是其余 api 所需的 PATH .

所以在我的 config/main.php 我有以下设置

'urlManager' => array (
                        'urlFormat' => 'path',
                        'rules' => array (
                                'student/<id:\d+>/<title:.*?>' => 'student/view',
                                'students/<tag:.*?>' => 'student/index',

                                array (
                                        'apistudent/register',
                                        'pattern' => 'api/<model:\w+>',
                                        'verb' => 'POST' 
                                ),

                                '<controller:\w+>/<action:\w+>' => '<controller>/<action>' 
                        ) 
                ),

我还有一个名为 ApiStudentController 的控制器一个名为actionRegister()的方法。

因此,如前所述,api 工作正常,但我的页面没有,因为我将 urlFormat 设置为“路径”。

问题是......我如何使用其余的 api,但没有 PATH url 格式,而是默认的 get url 格式(index.php?r=apistuden/register)?

4

1 回答 1

0

我在 yii 1.x 中也遇到了同样的问题。我只需要旧的 GET 格式而不是 PATH 格式的 API 控制器(因为我以 PATH 格式更改了我的网站 URL)。最后我用脚本文件中的一个小技巧让它工作了

$app = Yii::createWebApplication($env->configWeb); //store the app 
//Change the UrlFormat for urlManager to get if a get request is given instead of a path format one.
if (isset($_GET['r'])) {
    Yii::app()->urlManager->setUrlFormat('get');
}   
$app->run(); //run the app

我不知道这是否解决了你的问题。但这可以给你一个想法。快乐编码!

于 2016-08-17T07:20:47.370 回答