Phalcon:得到url params

时间:2017-11-03 13:28:02

标签: php phalcon 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;
   }
}

我的网址就像http://example.com/post/show/2015

我也试过了:
                http://example.com/post/show?year=2015
                http://example.com/post/show/year/2015

我该怎么做?

2 个答案:

答案 0 :(得分:2)

Dispatcher处理路由参数。

要使$this->dispatcher->getParam("year");工作,您需要定义&#34;年&#34;在你的路线:

$router->add('/post/show/{year}', 'Posts::show')->setName('postShow');

如果您的网址如下所示:http://example.com/post/show?year=2015要访问年份,您必须使用Request课程。

$this->request()->getQuery('year', 'int', 2012);

&#39;一年&#39; - 查询参数的名称;

&#39; INT&#39; - 消毒;

2012 - 默认值(如果需要)。

答案 1 :(得分:1)

您的网址遵循预期的/[controller]/[action]/[parameter]格式,因此您需要做的就是将$year传递给showAction()的参数:

<?php
use Phalcon\Mvc\Controller;

class PostController extends Controller{

   public function showAction($year){

       var_dump($year); //returns NULL;
   }
}