How to define default date values in Symfony2 routes?

前端 未结 2 826
无人共我
无人共我 2021-01-14 00:24

If I want to create a route, where the year, month and date are variables, how can I define that if these variables are empty, the current date shall be taken?

E.g.

相关标签:
2条回答
  • 2021-01-14 00:34

    You can set $year = null, $month = null, $day = null in controller.

    or maybe in route:

    year:  null,
    month: null,
    day:   null,
    

    Then in controller you should get last posts if variables = null, or posts by date.

    0 讨论(0)
  • 2021-01-14 00:35

    Dynamic Container Parameters

    You can set container parameters dynamically in your bundle's extension located Acme\BlogBundle\DependencyInjection\AcmeBlogExtension afterwards you can use those parameters in your routes like %parameter%.

    Extension

    namespace Acme\BlogBundle\DependencyInjection;
    
    use Symfony\Component\HttpKernel\DependencyInjection\Extension;
    use Symfony\Component\DependencyInjection\ContainerBuilder;
    
    class AcmeBlogExtension extends Extension
    {
        public function load(array $configs, ContainerBuilder $container)
        {
            $container->setParameter(
                'current_year',
                date("Y")
            );
    
            $container->setParameter(
                'current_month',
                date("m")
            );
    
            $container->setParameter(
                'current_day',
                date("d")
            );
        }
    }
    

    Routing Configuration

    blog:
        path:      /blog/{year}/{month}/{day}
        defaults:  { _controller: AcmeBlogBundle:Blog:index, year: %current_year%, month: %current_month%, day: %current_day% }
    

    Static Parameters

    If you only need configurable static parameters you can just add them to your config.yml.

    parameters:
        static_parameter: "whatever"
    

    ... then again access them in your routing like %static_parameter%.

    0 讨论(0)
提交回复
热议问题