Если я хочу создать маршрут, где год, месяц и дата являются переменными, как я могу определить, что если эти переменные пусты, будет взята текущая дата?
Например. вот так (не работает точно...)
blog:
path: /blog/{year}/{month}/{day}
defaults: { _controller: AcmeBlogBundle:Blog:index,
year: current_year,
month: current_month
day: current_day
}
Я думал об определении двух разных маршрутов, например
blog_current_day:
path: /blog
defaults: { _controller: AcmeBlogBundle:Blog:index }
blog:
path: /blog/{year}/{month}/{day}
defaults: { _controller: AcmeBlogBundle:Blog:index }
Но если я затем вызову blog_current_day
мой контроллер
public function indexAction(Request $request, $year, $month, $day) {
// ...
}
выдаст исключение, потому что год, месяц и день отсутствуют.
Какие-либо предложения?
DependencyInjection
для автоматической загрузки. 13.09.2013You have requested a non-existent parameter "current_year"
. 13.09.2013die('extension loaded!')
в метод расширенияload(..)
, чтобы проверить, загружается ли он. 13.09.2013date('d')
выдал16
вместо17
). Что здесь не так и как я могу гарантировать, что всегда принимается правильное значение? 17.09.2013date()
и текущим временем, которое вы ожидаете :) 17.09.2013die()
для отладки) и снова сохранил его, ошибка исчезла. 17.09.2013Extension::load
вызывается только во времяKernel::buildContainer
, обычно вызываемого сcache:warmup
. Это приведет к статическим значениям даты в момент сборки контейнера Symfony вvar/cache/
или до тех пор, пока контейнер не будет перестроен. 17.12.2019