{"id":1084,"date":"2025-06-12T12:28:37","date_gmt":"2025-06-12T04:28:37","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1084.html"},"modified":"2025-06-12T12:28:37","modified_gmt":"2025-06-12T04:28:37","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8symfony%e8%a7%86%e5%9b%be%e4%b8%ad%e5%b5%8c%e5%85%a5%e6%8e%a7%e5%88%b6%e5%99%a8","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1084.html","title":{"rendered":"\u5982\u4f55\u5728Symfony\u89c6\u56fe\u4e2d\u5d4c\u5165\u63a7\u5236\u5668"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Symfony &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23558;&#25511;&#21046;&#22120;&#23884;&#20837;&#21040;&#35270;&#22270;&#20013;&#12290;&#20197;&#19979;&#26159;&#20960;&#31181;&#24120;&#35265;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992; <code>include<\/code> &#25351;&#20196;<\/h3>\n<p>&#20320;&#21487;&#20197;&#22312;&#27169;&#26495;&#25991;&#20214;&#30340;&#39030;&#37096;&#20351;&#29992; <code>include<\/code> &#25351;&#20196;&#26469;&#21253;&#21547;&#21478;&#19968;&#20010;&#25511;&#21046;&#22120;&#29983;&#25104;&#30340; HTML &#20869;&#23481;&#12290;<\/p>\n<pre><code class=\"language-html\">&lt;!-- index.html.twig --&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;Index Page&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    {% include 'ControllerBundle:Controller:index.html.twig' %}\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>index.html.twig<\/code> &#25991;&#20214;&#20013;&#30340; <code>include<\/code> &#25351;&#20196;&#20250;&#21253;&#21547; <code>ControllerBundle:Controller:index.html.twig<\/code> &#25991;&#20214;&#30340;&#20869;&#23481;&#12290;<\/p>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992; <code>render<\/code> &#26041;&#27861;<\/h3>\n<p>&#20320;&#20063;&#21487;&#20197;&#20351;&#29992; <code>render<\/code> &#26041;&#27861;&#26469;&#28210;&#26579;&#19968;&#20010;&#25511;&#21046;&#22120;&#30340;&#21709;&#24212;&#24182;&#23558;&#20854;&#20316;&#20026;&#23383;&#31526;&#20018;&#25554;&#20837;&#21040;&#35270;&#22270;&#20013;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ Controller.php\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass Controller extends AbstractController\n{\n    public function renderAction(): Response\n    {\n        return $this-&gt;render('ControllerBundle:Controller:index.html.twig');\n    }\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#22312;&#27169;&#26495;&#25991;&#20214;&#20013;&#20351;&#29992; <code>{{ render('ControllerBundle:Controller:index') }}<\/code> &#26469;&#35843;&#29992;&#36825;&#20010;&#26041;&#27861;&#12290;<\/p>\n<h3>&#26041;&#27861;&#19977;&#65306;&#20351;&#29992; <code>renderView<\/code> &#26041;&#27861;<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#26356;&#28789;&#27963;&#22320;&#22788;&#29702;&#36820;&#22238;&#30340;&#25968;&#25454;&#65292;&#21487;&#20197;&#20351;&#29992; <code>renderView<\/code> &#26041;&#27861;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ Controller.php\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass Controller extends AbstractController\n{\n    public function renderAction(): Response\n    {\n        return new Response($this-&gt;renderView('ControllerBundle:Controller:index.html.twig'));\n    }\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#22312;&#27169;&#26495;&#25991;&#20214;&#20013;&#20351;&#29992; <code>{{ renderView('ControllerBundle:Controller:index') }}<\/code> &#26469;&#35843;&#29992;&#36825;&#20010;&#26041;&#27861;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#20320;&#26377;&#19968;&#20010;&#31616;&#21333;&#30340;&#25511;&#21046;&#22120; <code>HomeController<\/code> &#21644;&#19968;&#20010;&#27169;&#26495;&#25991;&#20214; <code>home.html.twig<\/code>&#65292;&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#65306;<\/p>\n<h4>HomeController.php<\/h4>\n<pre><code class=\"language-php\">\/\/ Home.php\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass HomeController extends AbstractController\n{\n    public function indexAction(): Response\n    {\n        return $this-&gt;render('HomeBundle:Home:index.html.twig');\n    }\n}<\/code><\/pre>\n<h4>home.html.twig<\/h4>\n<pre><code class=\"language-twig\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;Home Page&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Welcome to the Home Page&lt;\/h1&gt;\n    {% include 'App:Controller:Controller:index.html.twig' %}\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;<code>home.html.twig<\/code> &#25991;&#20214;&#20013;&#30340; <code>include<\/code> &#25351;&#20196;&#20250;&#21253;&#21547; <code>App:Controller:Controller:index.html.twig<\/code> &#25991;&#20214;&#30340;&#20869;&#23481;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#20123;&#20449;&#24687;&#23545;&#20320;&#26377;&#25152;&#24110;&#21161;&#65281;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#22312;&#26500;&#24314;&#22797;&#26434;&#30340;Symfony&#24212;&#29992;&#26102;&#65292;&#26377;&#19968;&#31181;&#27169;&#24335;&#22240;&#20854;&#23454;&#29992;&#24615;&#32780;&#33073;&#39062;&#32780;&#20986;&#65306;&#23884;&#20837;&#25511;&#21046;&#22120;&#21040;&#35270;&#22270;&#20013;&#12290;&#36825;&#31181;&#26041;&#27861;&#20801;&#35768;&#20320;&#22312;&#24212;&#29992;&#31243;&#24207;&#30340;&#19981;&#21516;&#37096;&#20998;&#37325;&#22797;&#20351;&#29992;&#25511;&#21046;&#22120;&#25805;&#20316;&#65292;&#20174;&#32780;&#22686;&#24378;&#27169;&#22359;&#21270;&#21644;&#21487;&#32500;&#25252;&#24615;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#28145;&#20837;&#25506;&#35752;&#22914;&#20309;&#26377;&#25928;&#22320;&#23558;&#25511;&#21046;&#22120;&#23884;&#20837;&#21040;&#20320;&#30340;Symfony&#35270;&#22270;&#20013;&#12290;<\/p><h2>&#29702;&#35299;&#25511;&#21046;&#22120;&#23884;&#20837;<\/h2><p>&#22312;&#25105;&#20204;&#24320;&#22987;&#22788;&#29702;&#20195;&#30721;&#20043;&#21069;&#65292;&#29702;&#35299;&#23884;&#20837;&#25511;&#21046;&#22120;&#21040;&#35270;&#22270;&#20013;&#30340;&#21547;&#20041;&#33267;&#20851;&#37325;&#35201;&#12290;&#31616;&#21333;&#26469;&#35828;&#65292;&#20320;&#21487;&#20197;&#20174;Twig&#27169;&#26495;&#20013;&#35843;&#29992;&#25511;&#21046;&#22120;&#12290;&#36825;&#20801;&#35768;&#20320;&#28210;&#26579;&#30001;&#25511;&#21046;&#22120;&#21160;&#20316;&#29983;&#25104;&#30340;&#21160;&#24577;&#20869;&#23481;&#65292;&#20363;&#22914;&#22312;&#22810;&#20010;&#39029;&#38754;&#30340;&#20391;&#36793;&#26639;&#32452;&#20214;&#20013;&#26174;&#31034;&#29992;&#25143;&#20010;&#20154;&#20449;&#24687;&#65292;&#32780;&#26080;&#38656;&#37325;&#22797;&#32534;&#20889;&#20195;&#30721;&#12290;<\/p><h2>&#19968;&#27493;&#19968;&#27493;&#23884;&#20837;&#25511;&#21046;&#22120;&#30340;&#25351;&#21335;<\/h2><h3>&#27493;&#39588;1&#65306;&#21019;&#24314;&#21487;&#37325;&#29992;&#30340;&#25511;&#21046;&#22120;&#21160;&#20316;<\/h3><pre><code>\n\/\/ src\/Controller\/ProfileWidgetController.php\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass ProfileWidgetController extends AbstractController\n{\n    public function index(): Response\n    {\n        \/\/ Retrieve user profile data\n        $userProfile = ...;\n\n        \/\/ Render the profile widget view\n        return $this-&gt;render('profile\/widget.html.twig', [\n            'userProfile' =&gt; $userProfile,\n        ]);\n    }\n}\n<\/code><\/pre><h3>&#27493;&#39588; 2&#65306;&#23558;&#25511;&#21046;&#22120;&#27880;&#20876;&#20026;&#26381;&#21153;<\/h3><p>&#22312;Symfony 4 &#21450;&#20854;&#21518;&#32493;&#29256;&#26412;&#20013;&#65292;&#25511;&#21046;&#22120;&#20250;&#33258;&#21160;&#27880;&#20876;&#20026;&#26381;&#21153;&#12290;&#28982;&#32780;&#65292;&#22914;&#26524;&#20320;&#38656;&#35201;&#33258;&#23450;&#20041;&#26381;&#21153;&#23450;&#20041;&#25110;&#27491;&#22312;&#20351;&#29992;&#36739;&#26087;&#30340;Symfony &#29256;&#26412;&#65292;&#21017;&#24517;&#39035;&#25163;&#21160;&#23450;&#20041;&#23427;&#12290;<\/p><pre><code>\n# config\/services.yaml\nservices:\n    AppControllerProfileWidgetController:\n        public: true\n        tags:\n            - { name: 'controller.service_arguments' }\n<\/code><\/pre><h3>&#27493;&#39588; 3&#65306;&#22312;&#35270;&#22270;&#20013;&#23884;&#20837;&#25511;&#21046;&#22120;<\/h3><p>&#20351;&#29992;&#21487;&#22797;&#29992;&#30340;&#25511;&#21046;&#22120;&#25805;&#20316;&#21644;&#27880;&#20876;&#30340;&#26381;&#21153;&#21518;&#65292;&#19979;&#19968;&#27493;&#23454;&#38469;&#19978;&#26159;&#22312;&#27169;&#26495;&#20013;&#23884;&#20837;&#25511;&#21046;&#22120;&#25805;&#20316;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;&#36825;&#20010;&#27169;&#26495;&#26469;&#23454;&#29616;&#12290;<code>{{ include() }}<\/code>&#21734;&#65292;&#26159;&#21527;&#65311;<code>{{ render() }}<\/code>&#36825;&#26159;&#19968;&#20010;&#29992;&#20110;Twig&#20989;&#25968;&#30340;&#12290;<\/p><pre><code>\n{# templates\/base.html.twig #}\n\n&lt;!-- ... other HTML and Twig code ... --&gt;\n\n&lt;div id=\"profile-widget\"&gt;\n    {{ render(controller('AppControllerProfileWidgetController::index')) }}\n&lt;\/div&gt;\n\n&lt;!-- ... other HTML and Twig code ... --&gt;\n<\/code><\/pre><h3>&#27493;&#39588;4&#65306;&#22312;&#27169;&#26495;&#20013;&#22788;&#29702;&#21709;&#24212;<\/h3><p>&#22312;&#28210;&#26579;&#25511;&#21046;&#22120;&#21160;&#20316;&#21518;&#65292;&#24212;&#22312;&#23884;&#20837;&#24335;&#27169;&#26495;&#20869;&#22788;&#29702;&#21709;&#24212;&#12290;&#30830;&#20445;&#35774;&#35745;&#23884;&#20837;&#24335;&#25511;&#21046;&#22120;&#30340;&#21709;&#24212;&#23613;&#21487;&#33021;&#29420;&#31435;&#12290;&#36825;&#25552;&#39640;&#20102;&#25511;&#21046;&#22120;&#21160;&#20316;&#30340;&#21487;&#37325;&#29992;&#24615;&#12290;<\/p><pre><code>\n{# templates\/profile\/widget.html.twig #}\n\n&lt;div class=\"profile-widget-content\"&gt;\n    &lt;!-- Display the profile information --&gt;\n    &lt;p&gt;Username: {{ userProfile.username }}&lt;\/p&gt;\n    &lt;!-- More profile-related content --&gt;\n&lt;\/div&gt;\n<\/code><\/pre><h2>&#23884;&#20837;&#25511;&#21046;&#22120;&#30340;&#26368;&#20339;&#23454;&#36341;<\/h2><p>&#19982;&#20219;&#20309;&#24320;&#21457;&#27169;&#24335;&#19968;&#26679;&#65292;&#23884;&#20837;&#25511;&#21046;&#22120;&#26102;&#24212;&#36981;&#24490;&#26368;&#20339;&#23454;&#36341;&#65306;<\/p><p>&#36991;&#20813;&#23558;&#25511;&#21046;&#22120;&#23884;&#20837;&#21040;&#24490;&#29615;&#20013;&#65292;&#20197;&#38450;&#27490;&#24615;&#33021;&#38382;&#39064;&#12290;<\/p><p>&#21033;&#29992;&#32531;&#23384;&#31574;&#30053;&#26469;&#25552;&#39640;&#23884;&#20837;&#24335;&#25511;&#21046;&#22120;&#25805;&#20316;&#30340;&#24615;&#33021;&#12290;<\/p><p>&#30830;&#20445;&#23884;&#20837;&#24335;&#25511;&#21046;&#22120;&#19981;&#35201;&#20381;&#36182;&#20110;&#29238;&#25511;&#21046;&#22120;&#25110;&#27169;&#26495;&#20013;&#30340;&#32454;&#33410;&#12290;<\/p><p>&#20445;&#25345;&#25511;&#21046;&#22120;&#25805;&#20316;&#31616;&#21333;&#65292;&#19987;&#27880;&#20110;&#28210;&#26579;&#39029;&#38754;&#30340;&#19968;&#37096;&#20998;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#35270;&#22270;&#20013;&#23884;&#20837;&#25511;&#21046;&#22120;&#21487;&#20197;&#23548;&#33268;&#39640;&#24230;&#21487;&#32500;&#25252;&#21644;&#27169;&#22359;&#21270;&#30340;Symfony&#24212;&#29992;&#31243;&#24207;&#12290;&#36890;&#36807;&#36981;&#24490;&#26412;&#25945;&#31243;&#20013;&#30340;&#27493;&#39588;&#21644;&#26368;&#20339;&#23454;&#36341;&#65292;&#24744;&#21487;&#20197;&#22686;&#24378;&#39033;&#30446;&#30340;&#28789;&#27963;&#24615;&#24182;&#20943;&#23569;&#20195;&#30721;&#37325;&#22797;&#12290;&#35831;&#35760;&#20303;&#65292;&#23884;&#20837;&#30340;&#25511;&#21046;&#22120;&#24212;&#31616;&#21333;&#12289;&#29420;&#31435;&#19988;&#19987;&#27880;&#20110;&#28210;&#26579;&#23567;&#32780;&#21487;&#37325;&#29992;&#30340;&#24212;&#29992;&#31243;&#24207;UI&#37096;&#20998;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312; Symfony &#20013;&#23558;&#25511;&#21046;&#22120;&#23884;&#20837;&#21040;&#35270;&#22270;&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#20960;&#31181;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992; <code>ViewHelper<\/code><\/h3>\n<p><code>ViewHelper<\/code> &#26159; Symfony &#30340;&#20869;&#32622;&#21151;&#33021;&#20043;&#19968;&#65292;&#23427;&#20801;&#35768;&#20320;&#22312;&#35270;&#22270;&#20013;&#21160;&#24577;&#22320;&#25554;&#20837;&#25968;&#25454;&#21644;&#36923;&#36753;&#12290;&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010; <code>Controller<\/code> &#31867;&#65292;&#24182;&#23454;&#29616; <code>render()<\/code> &#26041;&#27861;&#26469;&#36820;&#22238;&#19968;&#20010; <code>Response<\/code> &#23545;&#35937;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppController;\n\nuse SensioBundleFrameworkExtraBundleConfigurationIsGranted;\nuse SymfonyComponentHttpFoundationResponse;\nuse SymfonyComponentRoutingAnnotationRoute;\n\nclass MyController extends Controller\n{\n    \/**\n     * @Route(\"\/my-view\", name=\"my_view\")\n     *\/\n    public function myViewAction()\n    {\n        return new Response(\n            \"This is a view from the controller. Use the ViewHelper to display it.\"\n        );\n    }\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#20320;&#38656;&#35201;&#22312;&#35270;&#22270;&#25991;&#20214;&#65288;&#22914; <code>views\/my_view.html.twig<\/code>&#65289;&#20013;&#20351;&#29992; <code>@View<\/code> &#27880;&#37322;&#26469;&#24341;&#29992;&#36825;&#20010;&#25511;&#21046;&#22120;&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"{{ str_replace('_', '-', app()-&gt;getLocale()) }}\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"utf-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"&gt;\n\n    &lt;!-- CSRF Token --&gt;\n    &lt;meta name=\"csrf-token\" content=\"{{ csrf_token() }}\"&gt;\n\n    &lt;title&gt;{{ config('app.name', 'Laravel') }}&lt;\/title&gt;\n\n    &lt;!-- Scripts --&gt;\n    @vite(['resources\/css\/app.css', 'resources\/js\/app.js'])\n\n    &lt;!-- Fonts --&gt;\n    &lt;link rel=\"dns-prefetch\" href=\"\/\/fonts.gstatic.com\"&gt;\n    &lt;link href=\"https:\/\/fonts.googleapis.com\/css?family=Nunito\" rel=\"stylesheet\"&gt;\n\n    &lt;!-- Styles --&gt;\n    &lt;style&gt;\n        body {\n            background-color: #f5f5f5;\n            color: #333;\n            font-family: 'Nunito', sans-serif;\n        }\n\n        .container {\n            max-width: 600px;\n            margin: auto;\n        }\n    &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;div class=\"container\"&gt;\n    {{ $view-&gt;render() }}\n&lt;\/div&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992; <code>ViewHelper::renderWith<\/code><\/h3>\n<p>&#21478;&#19968;&#31181;&#26041;&#27861;&#26159;&#30452;&#25509;&#20351;&#29992; <code>ViewHelper::renderWith()<\/code> &#26041;&#27861;&#65292;&#36825;&#21487;&#20197;&#35753;&#20320;&#26356;&#28789;&#27963;&#22320;&#25511;&#21046;&#28210;&#26579;&#36807;&#31243;&#20013;&#30340;&#21442;&#25968;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppController;\n\nuse SensioBundleFrameworkExtraBundleConfigurationIsGranted;\nuse SymfonyComponentHttpFoundationRequestStack;\nuse SymfonyComponentHttpFoundationResponse;\nuse SymfonyComponentRoutingAnnotationRoute;\n\nclass MyController extends Controller\n{\n    \/**\n     * @Route(\"\/my-view\", name=\"my_view\")\n     *\/\n    public function myViewAction(RequestStack $requestStack)\n    {\n        \/\/ &#33719;&#21462;&#35831;&#27714;&#22534;&#26632;&#30340;&#24403;&#21069;&#35831;&#27714;&#23545;&#35937;\n        $currentRequest = $requestStack-&gt;getCurrentRequest();\n\n        \/\/ &#22312;&#36825;&#37324;&#28155;&#21152;&#20219;&#20309;&#38656;&#35201;&#30340;&#25968;&#25454;&#25110;&#36923;&#36753;\n        $data = [\n            'message' =&gt; \"Hello from the controller!\"\n        ];\n\n        \/\/ &#20351;&#29992; ViewHelper::renderWith() &#26469;&#28210;&#26579;&#35270;&#22270;\n        return $this-&gt;view($data);\n    }\n}<\/code><\/pre>\n<p>&#26368;&#21518;&#65292;&#20320;&#38656;&#35201;&#22312;&#35270;&#22270;&#25991;&#20214;&#20013;&#20351;&#29992; <code>ViewHelper::renderWith()<\/code> &#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-html\">{{ $view-&gt;renderWith(array('controller' =&gt; $this)) }}<\/code><\/pre>\n<p>&#36825;&#20004;&#31181;&#26041;&#27861;&#37117;&#21487;&#20197;&#29992;&#26469;&#22312; Symfony &#35270;&#22270;&#20013;&#23884;&#20837;&#25511;&#21046;&#22120;&#12290;&#36873;&#25321;&#21738;&#31181;&#26041;&#27861;&#21462;&#20915;&#20110;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#21644;&#21916;&#22909;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Symfony &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23558;&#25511;&#21046;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1084","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/1084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=1084"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1084"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1084"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}