我想得到" q"网址的参数值如下:
http://api.domain.com/artist?callback=jQuery1710976531726308167_1400000891029&q=thanh&_=1400000895743
如何在Phalcon中使用路由?我试试这个但不匹配:
$app->get("/artist?callback={callback:(.*)}&q={q:(.*)}&_={_:(.*)}", function ($q) {
//my logic code
}
或
$app->get("/artist?callback=jQuery1710976531726308167_1400000891029&q=thanh&_=1400000895743", function () {
//my logic code
}
答案 0 :(得分:1)
在Phalcon中,您使用Phalcon \ Http \ Request对象来检索查询字符串参数。如果您正在尝试为Phalcon的Micro Framework定义路线,您的路线应该如下定义:
$app->get("/artist", function () {
$request = new Phalcon\Http\Request();
$q = $request->get('q');
echo $q;
});
您没有使用查询字符串参数定义路由。您的路线将根据网址中问号前面的部分与上述内容匹配。此外,将参数传递给处理get请求的匿名函数是针对URL模式中的REST参数。如:
$app->get("/artist/{name}", function ($name) {
echo $name;
});
答案 1 :(得分:1)
你可以用两种方式做到这一点:
方式1 :使用获取参数
$this->request->get('artist');
方式2 :使用路由器
路由器中的:
$router->add("/artist/id/([a-zA-Z0-9\_\-])", array( 'controller' => 'index', 'action' => 'artist', 'name' => 'abc' ));
控制器中的:
$id = $this->dispatcher->getParam("name");
希望这会很好。