我正在使用 Symfony 4.x,目前在 Twig 模板中包含這樣的組件:我的模板.twig{% include '/components/my-component.twig' with { data1 : some_array, data2 : some_string }%}在上面的示例中,my-component.twig需要data1將data2其傳遞給它。這意味著這兩個數據項需要對...可用my-template.twig,這意味著我需要使其在加載 my-template.twig的控制器中可用。class MyController extends Controller { // ... $data = [ 'data1' = [ /* some array data */ ]; 'data2' = 'a string'; ]; $res = $this->renderView('my-template.twig', $data); return new Response($res);}我遇到的問題是我可能會my-component.twig在許多不同的模板中使用,每個模板都有自己獨立的控制器。為了data1. data2_ my-component.twig_通過在服務中包含公共數據對象并將該服務包含在需要特定數據的所有控制器中,我已經在一定程度上解決了這個問題,但這也不是理想的。如果一個特定的 Twig 組件是完全自封裝的,那將是理想的——這意味著我可以將它自由地包含在一個模板中,它會自動獲取它自己的所有數據。也就是說,該組件有它自己的專用“控制器”,即 PHP 代碼在特定 Twig 模板(組件)呈現時自動運行,而無需明確指示。在 Symfony 中有這樣的可能嗎?
帶有 Symfony PHP 的 Twig 中的組件級控制器
慕蓋茨4494581
2023-04-21 15:28:00