Yaf 框架使用 Yaf_Route_Simple 路由协议,无法获取 param 数据是什么原因呢?
问题描述
在 Bootstrap.php 中添加了 Yaf_Route_Simple
路由协议
$router = Yaf_Dispatcher::getInstance()->getRouter();
$route = new Yaf_Route_Simple('m', 'c', 'a');
$router->addRoute("simple", $route);
请求地址为 http://localhost/?m=api&c=foo...
请求结果为:
其中 RouterShutdown 钩子打印了路由之后的结果,可以看到是正常走了路由,但是
获取请求参数 print_r($this->getRequest()->getParams());
返回了空数组
问题出现的环境背景及自己尝试过哪些方法
通过 assemble
函数生成的 uri 尝试访问也失败了
var_dump($router->getRoute("simple")->assemble(array(":m"=>"api",":c"=>"foo",":a"=>"test"),array("key"=>"value")));
后来使用getQuery()
方法拿到了数据,但是还是有疑问 getParams()
为何是空
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
nginx 相关配置
if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1 last;
}
location / {
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass php_processes;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
通过 Yaf_Route_Simple
路由协议正常获取请求参数
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
http://localhost/?m=api&c=foo&a=test&key=value
这种请求方式是 queryString 的方式,所以需要通过
getQuery()
的方法去拿数据http://localhost//api/foo/test/key/value
这种请求方式是 pathInfo 的方式,可以通过
getParams()
的方法拿到数据