当前位置:  开发笔记 > 编程语言 > 正文

Phalcon Micro应用程序无法使用查询字符串正确路由

如何解决《PhalconMicro应用程序无法使用查询字符串正确路由》经验,为你挑选了1个好方法。

我正在尝试使用Phalcon中Micro应用程序开发RESTful API .现在我正在使用面向PHP的Facebook SDK进行社交登录,但我发现当Facebook将我重定向到我的回调(显然内部查询字符串)时,路由器找不到任何处理程序方法.

GET: http://localhost:8000/api/v1/register/facebook/callback?code=...&state=...#_=_

Not-Found handler is not callable or is not defined
#0 /home/adrian/PhpstormProjects/myproject/index.php(39): Phalcon\Mvc\Micro->handle()
#1 {main}

我所有的其他路由都正常工作,但这是我第一次面对查询字符串,所以我不知道我做错了什么.

我正在使用Micro Collections进行路由和PHP 内置服务器.

这是我的.htrouter.php.当我抑制从查询字符串$_SERVER['REQUEST_URI']路径工作正常,但因为它期待参数Facebook的SDK失败.我试图找出Phalcon是否将URL和查询字符串保存在不同的$_GET变量中,但我认为情况并非如此.



我的 micro-collection.php

setHandler('App\Controllers\V1\RegisterController', true);
$register->setPrefix('/api/v1/register');
$register->get('/facebook', 'getAuthFacebook');
$register->get('/facebook/callback', 'facebookCallback');

return $register;

这是我的 RegisterController.php

facebook->getRedirectLoginHelper();
        $permissions = ['email', 'user_likes'];
        $loginUrl = $helper->getLoginUrl('http://localhost:8000/api/v1/register/facebook/callback', $permissions);

        return new Response($loginUrl);
    }

    public function facebookCallback()
    {
        ....
    }
}

index.php是完全一样的一个phalcon-devtools生成不同的是我安装我的微收藏一个新的项目,所以我觉得这个问题是不存在的.

先感谢您!



1> soutoner..:

最后,经过论坛的大量研究,我找到了解决方案.我不得不把它添加到我的index.php:

刚过:

$app = new \Phalcon\Mvc\Micro($di);

这个:

$app->getRouter()->setUriSource(\Phalcon\Mvc\Router::URI_SOURCE_SERVER_REQUEST_URI);

资源

我不知道它为什么会起作用,因为正如文档所说,它改变了路由器的行为以便使用$_SERVER['REQUEST_URI']而不是$_GET['_url']实际上.htrouter.php(或者至少尝试做).

无论如何,因为我对Phalcon不是很有经验,所以我很可能误解了一些东西.希望能帮助到你.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有