How to define default date values in Symfony2 routes?

前端 未结 2 852
无人共我
无人共我 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: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%.

提交回复
热议问题