gpt4 book ai didi

forms - symfony2 通过服务来形成主题

转载 作者:行者123 更新时间:2023-12-01 07:40:16 28 4
gpt4 key购买 nike

晚上好

我只需要从 form_theme 访问服务,例如 myService.myFunction(param1, param2),其中 myService 是保存服务本身的变量。我需要访问的参数是 block('form_label'),它为我提供了 for html 属性。

我尝试使用 $request->attributes->set() 方法通过 Request 访问 myService。这有效,但不是 100%,因为我需要 myService 中的 entityManager,并且它被设置为 null。所以我想这不是正确的方法。

我想尝试使用 formExtensions,但我需要它用于许多 formType(大约 10 个),并且扩展只适用于一个 FormType...

是否有更好的解决方案来从我的模板访问服务(使用实体管理器)?

最佳答案

只需通过 Controller 操作传递它:

$service = $this->get('MY_SERVICE');

...

return $this->render(..., ['service' => $service]);

或者使用 TwigExtension(没有 Controller ):

private $myService;

public function __construct(MyService $myService)
{
$this->myService = $myService;
}

public function getFunctions()
{
return [
new \Twig_SimpleFunction('my_service', [$this, 'getMyService']);
];
}

public function getMyService()
{
return $this->myService;
}

并像这样在模板中全局使用它:

{{ my_service().myDesiredMethod() }}

关于forms - symfony2 通过服务来形成主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512100/

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