Phalcon: получить параметры URL

Я пытаюсь обработать параметры 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

Как мне это сделать?

1

Решение

Диспетчер обрабатывает параметры маршрута.

За это $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 — значение по умолчанию (если оно вам нужно).

2

Другие решения

Ваш URL соответствует ожидаемому /[controller]/[action]/[parameter] формат, так что все, что вам нужно сделать, это сделать $year параметр передан showAction():

<?php
use Phalcon\Mvc\Controller;

class PostController extends Controller{

public function showAction($year){

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

По вопросам рекламы [email protected]