Php Phalcon:获取url参数
我试图用dispatcher直接在控制器中处理GET参数,但结果是Php Phalcon:获取url参数,php,phalcon,dispatcher,Php,Phalcon,Dispatcher,我试图用dispatcher直接在控制器中处理GET参数,但结果是NULL <?php use Phalcon\Mvc\Controller; class PostController extends Controller{ public function showAction(){ $year = $this->dispatcher->getParam("year"); var_dump($year); //returns NULL;
NULL
<?php
use Phalcon\Mvc\Controller;
class PostController extends Controller{
public function showAction(){
$year = $this->dispatcher->getParam("year");
var_dump($year); //returns NULL;
}
}
调度程序处理路由参数 对于此
$this->dispatcher->getParam(“年”)代码>要工作,您需要在路线中定义“年”:
$router->add('/post/show/{year}', 'Posts::show')->setName('postShow');
如果您的url如下所示:要访问年份,您必须使用请求
类
$this->request()->getQuery('year', 'int', 2012);
“年”-查询参数的名称
“int”-消毒
2012-默认值(如果需要)。您的URL遵循预期的/[controller]/[action]/[parameter]
格式,因此您只需将$year
作为传递给showAction()
的参数:
我做了一些研究,以前见过这个解决方案。这段代码来自phalcon文档:您可以通过以下方式从其名称获取任意参数:使用phalcon\Mvc\Controller;类PostsController扩展控制器{public function showAction(){$year=$this->dispatcher->getParam('year');$postTitle=$this->dispatcher->getParam('postTitle');}}}这是我不明白的一点,他们直接在contollert中使用它。他们在路由中有命名参数。这部分文档中没有显示。请阅读此处的“带名称的参数”部分:您将了解:)我非常感谢您的帮助。我将阅读您提供的文档链接。
<?php
use Phalcon\Mvc\Controller;
class PostController extends Controller{
public function showAction($year){
var_dump($year); //returns NULL;
}
}