gpt4 book ai didi

symfony - 如何在 Symfony2 路由中定义默认日期值?

转载 作者:行者123 更新时间:2023-12-04 22:12:58 26 4
gpt4 key购买 nike

如果我想创建一条路线,其中年月日是变量,我如何定义如果这些变量为空,则取当前日期?

例如。像这样(肯定行不通......)

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 我的 Controller
public function indexAction(Request $request, $year, $month, $day) {
// ...
}

将抛出异常,因为缺少年、月和日。

有什么建议么?

最佳答案

动态容器参数

您可以在位于 Acme\BlogBundle\DependencyInjection\AcmeBlogExtension 的包的扩展中动态设置 container parameters ,之后您可以在路由中使用这些参数,如 %parameter%

扩大

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")
);
}
}

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

静态参数

如果您只需要可配置的静态参数,您可以将它们添加到您的 config.yml 中。
parameters:
static_parameter: "whatever"

...然后再次在您的路由中访问它们,如 %static_parameter%

关于symfony - 如何在 Symfony2 路由中定义默认日期值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com