Я пытаюсь обработать параметры GET непосредственно в контроллере с диспетчером, но результат NULL
,
<?php
use Phalcon\Mvc\Controller;
class PostController extends Controller{
public function showAction(){
$year = $this->dispatcher->getParam("year");
var_dump($year); //returns NULL;
}
}
Мой URL похож http://example.com/post/show/2015
Я тоже попробовал:
http://example.com/post/show?year=2015
http://example.com/post/show/year/2015
Как мне это сделать?
Диспетчер обрабатывает параметры маршрута.
За это $this->dispatcher->getParam("year");
Для работы необходимо определить «год» в вашем маршруте:
$router->add('/post/show/{year}', 'Posts::show')->setName('postShow');
Если ваш URL выглядел так: http://example.com/post/show?year=2015 чтобы получить год вы должны использовать Request
учебный класс.
$this->request()->getQuery('year', 'int', 2012);
‘year’ — имя параметра запроса;
‘int’ — санация;
2012 — значение по умолчанию (если оно вам нужно).
Ваш URL соответствует ожидаемому /[controller]/[action]/[parameter]
формат, так что все, что вам нужно сделать, это сделать $year
параметр передан showAction()
:
<?php
use Phalcon\Mvc\Controller;
class PostController extends Controller{
public function showAction($year){
var_dump($year); //returns NULL;
}
}