我正在使用 Symfony 4.x,目前在 Twig 模板中包含這樣的組件:我的模板.twig{% include '/components/my-component.twig' with { data1 : some_array, data2 : some_string }%}在上面的示例中,my-component.twig需要data1將data2其傳遞給它。這意味著這兩個(gè)數(shù)據(jù)項(xiàng)需要對(duì)...可用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);}我遇到的問(wèn)題是我可能會(huì)my-component.twig在許多不同的模板中使用,每個(gè)模板都有自己獨(dú)立的控制器。為了data1. data2_ my-component.twig_通過(guò)在服務(wù)中包含公共數(shù)據(jù)對(duì)象并將該服務(wù)包含在需要特定數(shù)據(jù)的所有控制器中,我已經(jīng)在一定程度上解決了這個(gè)問(wèn)題,但這也不是理想的。如果一個(gè)特定的 Twig 組件是完全自封裝的,那將是理想的——這意味著我可以將它自由地包含在一個(gè)模板中,它會(huì)自動(dòng)獲取它自己的所有數(shù)據(jù)。也就是說(shuō),該組件有它自己的專用“控制器”,即 PHP 代碼在特定 Twig 模板(組件)呈現(xiàn)時(shí)自動(dòng)運(yùn)行,而無(wú)需明確指示。在 Symfony 中有這樣的可能嗎?
帶有 Symfony PHP 的 Twig 中的組件級(jí)控制器
慕蓋茨4494581
2023-04-21 15:28:00