Мое приложение phalcon отлично работает со стандартным соглашением по трафику MVC. Однако, я хочу, чтобы справиться с некоторыми переменными через URL, то у меня есть маршрут:Phalcon route не работает
$router = new \Phalcon\Mvc\Router();
$router->add("/timesheet/some/{year:[0-9]+}/{month:[0-9]{2}}/{day:[0-9]{2}}", "Timesheet::some");
$router->add("/timesheet/getreport/{type:[a-z]}/{year:[0-9]+}/{month:[0-9]{2}}/{day:[0-9]{2}}", "Timesheet::getreport");
$router->addPost("/user/auth", "User::auth");
return $router;
Первый маршрут (табель/немного) работало нормально, я могу получить доступ к «году», «месяц» переменная, использующая
$year = $this->dispatcher->getParam("year");
, однако второй маршрут (расписание/получение) не работает. В этом случае$year = $this->dispatcher->getParam("year");
возвращает null.Если я изменил
$ маршрутизатор = новый \ Phalcon \ Mvc \ Router (ложь);
$ router-> добавить ("/: контроллер /: действие", массив ( "контроллер" => 1, "действие" => 2, ));
$ router-> add ("/ timesheet/some/{year: [0-9] +}/{month: [0-9] {2}}/{day: [0-9] {2 }} "," Timesheet :: some "); $ router-> addPost ("/ timesheet/getreport/{type: [az]}/{year: [0-9] +}/{month: [0-9] {2}}/{day: [0 -9] {2}} "," Timesheet :: getreport "); $ router-> addPost ("/ user/auth", "User :: auth");
return $ router;
каждый запрос будет направлен на индекс/индекс. Мой URL-адрес проекта - localhost/fpas, и я уже пытаюсь использовать route/fpas/timesheet/some и/timesheet/some, но он всегда перенаправляется на индекс/индекс. Что с этим не так? (security/auth закомментирован, поэтому это не результат аутентификации).
- Из моего понимания, маршрут по умолчанию, $ router = new \ Phalcon \ Mvc \ Router(); только разрешить вам следовать соглашению MVC, а $ router = new \ Phalcon \ Mvc \ Router (false); но вам нужно указать все маршруты для каждого контроллера/действия. Могу ли я сохранить соглашение для большей части действия, а для некоторых действий - конкретные переписывающие маршруты. Как я могу это сделать?
спасибо.