我有一个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)?
答案 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
我不知道这是否能解决你的问题。但这可以给你一个想法。快乐的编码!