使用yii rest api使用默认的URL GET格式而不是PATH格式

时间:2016-06-28 12:25:24

标签: yii yii-url-manager yii-rest

我有一个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设置为'path'。

问题是......我怎么能使用其余的api但没有PATH url格式而是默认的get url格式(index.php?r = apistudent / register)?

1 个答案:

答案 0 :(得分: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

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

相关问题