第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

帶有 Symfony PHP 的 Twig 中的組件級(jí)控制器

帶有 Symfony PHP 的 Twig 中的組件級(jí)控制器

PHP
慕蓋茨4494581 2023-04-21 15:28:00
我正在使用 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 中有這樣的可能嗎?
查看完整描述

1 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果我理解正確,您想在樹(shù)枝中使用#render() 方法。


您在控制器中創(chuàng)建一個(gè)方法,即 myComponentRender() 然后您可以執(zhí)行此操作而不是執(zhí)行 include


{{ render(controller(

? ? 'App\\Controller\\MyController::myComponentRender',

? ? { 'foo': 'bar' }

)) }}

我已經(jīng)包含了 foo 參數(shù)只是為了向您展示如果需要可以傳遞一個(gè)參數(shù)(例如如果您想?yún)^(qū)分哪個(gè)頁(yè)面正在調(diào)用它),但是根據(jù)您的示例判斷您可能不需要傳遞任何東西


澄清一下,在您的 myComponentRender() 方法中,您需要返回 $this->render(...)

查看完整回答
反對(duì) 回復(fù) 2023-04-21
  • 1 回答
  • 0 關(guān)注
  • 150 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)