我希望我的树枝日期和数字(例如{{number | numberformat}})采用我的用户选择的格式。
在this question中,建议让听众设置默认的树枝格式。我不完全理解这种方法,所以我不确定是否可以调整此代码以确保日期以所选格式显示? (我的意思是有一个方法User :: getDateFormat()) 或者你会推荐另一种方法吗?
谢谢!
答案 0 :(得分:3)
也会注入用户,所有人都会像魅力一样工作
namespace MyApp\AppBundle\Services;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class TwigDateRequestListener
{
protected $twig;
protected $context;
function __construct(\Twig_Environment $twig, SecurityContext $context)
{
$this->twig = $twig;
$this->context = $context;
}
public function onKernelRequest(GetResponseEvent $event)
{
$user = $this->context->getToken()->getUser();
$user_date_format = $user->//function to retrieve date settings
$this->twig->getExtension('core')->setDateFormat('Y-m-d', '%d days');
}
}
请记住修改服务定义
services:
twigdate.listener.request:
class: MyApp\AppBundle\Services\TwigDateRequestListener
arguments: [@twig, @security.context]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
引发onKernelRequest
事件时调用 kernel.request
(查看服务定义,你可能会理解这一点)
kernel.request