在Symfony 2中是否可以使用' intermediate '可选参数定义路由。 I'll use other question data,用于支持我使用相同的样式,例如:
因为我遇到的问题是我的参数都不是强制性的,并且不同的逻辑起作用,从属于那些激活的参数。
直到现在,如果我不这样设置:
- localhost / param 1 / param 2 / ...
(缺失: param 3 / param 4 )
我无法使用中间参数,这是一个不太灵活的解决方案。 如果未指定先前的可选参数(所有参数),我无法实现此目的。 如果视线更清晰,我不会为相同的背景创建额外的路线。
这是我的路线背景:
zk_time_download_with_all_parameters:
pattern: /download/{format}/{id}/{start_date}/{end_date}
defaults: { _controller: ZkTimeBundle:Empleado:download, format: txt, id: %employeeId%, start_date: %start_date%, end_date: %end_date% }
requirements:
id: -?\d+
start_date: ^((\d{4})[/|-]?(\d{2})[/|-]?(\d{2}))*|(\d{2})[/|-]?(\d{2})[/|-]?(\d{4})$
end_date: ^((\d{4})[/|-]?(\d{2})[/|-]?(\d{2}))*|(\d{2})[/|-]?(\d{2})[/|-]?(\d{4})$
format: txt|xml|pdf
这些是我追求的标准:
我在我的控制器中检查路由空参数并创建相应的查询(默认情况下)。
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
//Route: /marca/{start_date}/{end_date}
$today = date('d-m-Y');
$today_object = new \DateTime($today);
$total_days = $today_object->format('t');
$month_start = $today_object->format('Y-m-1');
$month_end = $today_object->format('Y-m-' . $total_days);
$container->setParameter('month_start', $month_start);
$container->setParameter('month_end', $month_end);
$container->setParameter('start_date', $today);
$container->setParameter('end_date', $today);
$container->setParameter('format', 'txt');
$container->setParameter('employeeId', 0);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader->load('services.yml');
}