{"id":829,"date":"2025-06-12T00:40:01","date_gmt":"2025-06-11T16:40:01","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/829.html"},"modified":"2025-06-12T00:40:01","modified_gmt":"2025-06-11T16:40:01","slug":"laravel-%e8%a7%86%e5%9b%be%e7%bb%84%e5%90%88%e5%99%a8%ef%bc%9a%e5%ae%9e%e7%94%a8%e6%8c%87%e5%8d%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/829.html","title":{"rendered":"Laravel \u89c6\u56fe\u7ec4\u5408\u5668\uff1a\u5b9e\u7528\u6307\u5357"},"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>&#12298;Laravel &#35270;&#22270;&#32452;&#21512;&#22120;&#65306;&#23454;&#29992;&#25351;&#21335;&#12299;<\/p>\n<p>&#22312; Laravel &#20013;&#65292;&#35270;&#22270;&#32452;&#21512;&#22120;&#65288;View Composers&#65289;&#26159;&#19968;&#31181;&#38750;&#24120;&#24378;&#22823;&#30340;&#24037;&#20855;&#65292;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#24212;&#29992;&#30340;&#19981;&#21516;&#37096;&#20998;&#20849;&#20139;&#25968;&#25454;&#12290;&#23427;&#20204;&#21487;&#20197;&#20943;&#23569;&#37325;&#22797;&#20195;&#30721;&#65292;&#24182;&#19988;&#20351;&#20195;&#30721;&#26356;&#21152;&#27169;&#22359;&#21270;&#21644;&#26131;&#20110;&#32500;&#25252;&#12290;<\/p>\n<h3>&#20160;&#20040;&#26159;&#35270;&#22270;&#32452;&#21512;&#22120;&#65311;<\/h3>\n<p>&#35270;&#22270;&#32452;&#21512;&#22120;&#26159;&#36890;&#36807; <code>AppProvidersViewComposerServiceProvider<\/code> &#27880;&#20876;&#30340;&#31867;&#12290;&#24403;&#35831;&#27714;&#34987;&#36335;&#30001;&#21040;&#25511;&#21046;&#22120;&#26102;&#65292;Laravel &#20250;&#33258;&#21160;&#35843;&#29992;&#36825;&#20123;&#32452;&#21512;&#22120;&#26469;&#29983;&#25104;&#35270;&#22270;&#25968;&#25454;&#12290;<\/p>\n<h3>&#22914;&#20309;&#20351;&#29992;&#35270;&#22270;&#32452;&#21512;&#22120;&#65311;<\/h3>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;&#35270;&#22270;&#32452;&#21512;&#22120;<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#35270;&#22270;&#32452;&#21512;&#22120;&#31867;&#12290;&#20363;&#22914;&#65292;&#20551;&#35774;&#20320;&#26377;&#19968;&#20010; <code>UserComposer<\/code> &#31867;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppProviders;\n\nuse IlluminateSupportFacadesView;\nuse AppModelsUser;\n\nclass UserComposer\n{\n   public function compose(View $view)\n   {\n       $user = User::find(1);\n       $view-&gt;with('user', $user);\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#27880;&#20876;&#35270;&#22270;&#32452;&#21512;&#22120;<\/strong>&#65306;\n&#22312; <code>config\/app.php<\/code> &#25991;&#20214;&#20013;&#30340; <code>providers<\/code> &#25968;&#32452;&#20013;&#28155;&#21152; <code>AppProvidersViewComposerServiceProvider<\/code>&#65306;<\/p>\n<pre><code class=\"language-php\">'providers' =&gt; [\n   \/\/ &#20854;&#20182;&#26381;&#21153;&#25552;&#20379;&#32773;...\n\n   AppProvidersViewComposerServiceProvider::class,\n],<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#37197;&#32622;&#35270;&#22270;&#32452;&#21512;&#22120;<\/strong>&#65306;\n&#22312; <code>config\/view-composers.php<\/code> &#25991;&#20214;&#20013;&#23450;&#20041;&#35201;&#20351;&#29992;&#30340;&#32452;&#21512;&#22120;&#65306;<\/p>\n<pre><code class=\"language-php\">return [\n   'user' =&gt; AppProvidersUserComposer::class,\n];<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#32452;&#21512;&#22120;<\/strong>&#65306;\n&#22312;&#25511;&#21046;&#22120;&#20013;&#65292;&#20320;&#21487;&#20197;&#30452;&#25509;&#35775;&#38382;&#32452;&#21512;&#22120;&#24182;&#33719;&#21462;&#25968;&#25454;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n   public function show($id)\n   {\n       $user = User::find($id);\n\n       return view('users.show')-&gt;with([\n           'user' =&gt; $user,\n       ]);\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#22312; Blade &#27169;&#26495;&#20013;&#20351;&#29992;&#25968;&#25454;<\/strong>&#65306;\n&#22312; Blade &#27169;&#26495;&#20013;&#65292;&#20320;&#21487;&#20197;&#20687;&#20351;&#29992;&#20854;&#20182;&#21464;&#37327;&#19968;&#26679;&#20351;&#29992; <code>$user<\/code> &#25968;&#25454;&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;div&gt;\n   &lt;h1&gt;{{ $user-&gt;name }}&lt;\/h1&gt;\n   &lt;p&gt;Email: {{ $user-&gt;email }}&lt;\/p&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992;&#35270;&#22270;&#32452;&#21512;&#22120;&#65306;<\/p>\n<h4>1. &#21019;&#24314;&#35270;&#22270;&#32452;&#21512;&#22120;<\/h4>\n<pre><code class=\"language-php\">namespace AppProviders;\n\nuse IlluminateSupportFacadesView;\nuse AppModelsUser;\n\nclass UserComposer\n{\n    public function compose(View $view)\n    {\n        $user = User::find(1);\n        $view-&gt;with('user', $user);\n    }\n}<\/code><\/pre>\n<h4>2. &#27880;&#20876;&#35270;&#22270;&#32452;&#21512;&#22120;<\/h4>\n<pre><code class=\"language-php\">\/\/ config\/app.php\nreturn [\n    \/\/ &#20854;&#20182;&#26381;&#21153;&#25552;&#20379;&#32773;...\n\n    AppProvidersViewComposerServiceProvider::class,\n];<\/code><\/pre>\n<h4>3. &#37197;&#32622;&#35270;&#22270;&#32452;&#21512;&#22120;<\/h4>\n<pre><code class=\"language-php\">\/\/ config\/view-composers.php\nreturn [\n    'user' =&gt; AppProvidersUserComposer::class,\n];<\/code><\/pre>\n<h4>4. &#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#32452;&#21512;&#22120;<\/h4>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n    public function show($id)\n    {\n        $user = User::find($id);\n\n        return view('users.show')-&gt;with([\n            'user' =&gt; $user,\n        ]);\n    }\n}<\/code><\/pre>\n<h4>5. &#22312; Blade &#27169;&#26495;&#20013;&#20351;&#29992;&#25968;&#25454;<\/h4>\n<pre><code class=\"language-blade\">&lt;!-- resources\/views\/users\/show.blade.php --&gt;\n&lt;div&gt;\n    &lt;h1&gt;{{ $user-&gt;name }}&lt;\/h1&gt;\n    &lt;p&gt;Email: {{ $user-&gt;email }}&lt;\/p&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#23558;&#25968;&#25454;&#20174;&#22810;&#20010;&#22320;&#26041;&#20256;&#36882;&#21040;&#35270;&#22270;&#20013;&#65292;&#20174;&#32780;&#25552;&#39640;&#20195;&#30721;&#30340;&#22797;&#29992;&#24615;&#21644;&#21487;&#35835;&#24615;&#12290;<\/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>View Composers in Laravel &#25552;&#20379;&#20102;&#19968;&#31181;&#20248;&#38597;&#19988;&#26041;&#20415;&#30340;&#26041;&#24335;&#26469;&#22312;&#25972;&#20010;&#24212;&#29992;&#30340;&#25152;&#26377;&#35270;&#22270;&#20043;&#38388;&#20849;&#20139;&#25968;&#25454;&#12290;&#36825;&#20123;&#24378;&#22823;&#30340;&#21151;&#33021;&#20351;&#24471;&#24320;&#21457;&#20154;&#21592;&#33021;&#22815;&#20197;&#32039;&#20945;&#21644;&#21487;&#27979;&#35797;&#30340;&#26041;&#24335;&#32452;&#32455;&#36127;&#36131;&#20934;&#22791;&#35270;&#22270;&#25968;&#25454;&#30340;&#20195;&#30721;&#12290;&#36825;&#31616;&#21270;&#20102;&#20256;&#36882;&#25968;&#25454;&#30340;&#36807;&#31243;&#65292;&#26080;&#38656;&#25163;&#21160;&#22312;&#27599;&#20010;&#25511;&#21046;&#22120;&#26041;&#27861;&#20869;&#32465;&#23450;&#25968;&#25454;&#12290;&#22312;&#36825;&#20221;&#23454;&#29992;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034;&#35270;&#22270;&#32452;&#21512;&#22120;&#24182;&#20102;&#35299;&#23427;&#20204;&#22914;&#20309;&#20351;&#24744;&#30340; Laravel &#24212;&#29992;&#31243;&#24207;&#26356;&#25972;&#27905;&#12289;&#26356;&#39640;&#25928;&#12290;<\/p><h3>&#35270;&#22270;&#32534;&#25490;&#22120;(View Composer) &#26159;Adobe Photoshop&#20013;&#30340;&#19968;&#20010;&#24037;&#20855;&#65292;&#29992;&#20110;&#21019;&#24314;&#21644;&#32534;&#36753;&#22270;&#20687;&#30340;&#35270;&#22270;&#24067;&#23616;&#12290;&#23427;&#20801;&#35768;&#29992;&#25143;&#26681;&#25454;&#38656;&#35201;&#37325;&#26032;&#25490;&#21015;&#12289;&#35843;&#25972;&#22823;&#23567;&#25110;&#21024;&#38500;&#22270;&#20687;&#30340;&#19981;&#21516;&#37096;&#20998;&#12290;&#35270;&#22270;&#32534;&#25490;&#22120;&#21487;&#20197;&#24110;&#21161;&#29992;&#25143;&#26356;&#26377;&#25928;&#22320;&#32452;&#32455;&#21644;&#23637;&#31034;&#20182;&#20204;&#30340;&#35774;&#35745;&#24037;&#20316;&#65292;&#25552;&#39640;&#24037;&#20316;&#25928;&#29575;&#24182;&#30830;&#20445;&#35270;&#35273;&#25928;&#26524;&#30340;&#19968;&#33268;&#24615;&#12290;<\/h3><p>&#35270;&#22270;&#32534;&#35793;&#22120;&#26159;&#19968;&#31181;&#22238;&#35843;&#25110;&#31867;&#26041;&#27861;&#65292;&#29992;&#20110;&#22312;&#35270;&#22270;&#28210;&#26579;&#26102;&#35843;&#29992;&#12290;&#22914;&#26524;&#24744;&#24076;&#26395;&#23558;&#25968;&#25454;&#32465;&#23450;&#21040;&#27599;&#20010;&#35270;&#22270;&#30340;&#27599;&#27425;&#28210;&#26579;&#36807;&#31243;&#20013;&#24212;&#29992;&#21040;&#25972;&#20010;&#24212;&#29992;&#31243;&#24207;&#65292;&#21017;&#21487;&#20197;&#20351;&#29992;&#35270;&#22270;&#32534;&#35793;&#22120;&#26469;&#32452;&#32455;&#35813;&#36923;&#36753;&#21040;&#19968;&#20010;&#21333;&#19968;&#30340;&#20301;&#32622;&#12290;<\/p><h2>&#21019;&#24314;&#35270;&#22270;&#32452;&#21512;&#22120;<\/h2><p>&#39318;&#20808;&#65292;&#35753;&#25105;&#20204;&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;&#35270;&#22270;&#32452;&#20214;&#12290;&#20551;&#35774;&#24744;&#24076;&#26395;&#22312;&#25152;&#26377;&#35270;&#22270;&#20043;&#38388;&#20849;&#20139;&#29992;&#25143;&#25968;&#25454;&#12290;&#24744;&#21487;&#20197;&#20351;&#29992;&#38381;&#21253;&#24335;&#32452;&#20214;&#25110;&#31867;&#24335;&#32452;&#20214;&#12290;&#25105;&#20204;&#20174;&#19968;&#20010;&#38381;&#21253;&#24335;&#30340;&#20363;&#23376;&#24320;&#22987;&#65306;<\/p><pre><code>\/\/ Using Closure-based composer\nView::composer('layouts.app', function ($view) {\n    $view-&gt;with('profile', Auth::user()-&gt;profile);\n});<\/code><\/pre><p>&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20195;&#30721;&#12290;<code>boot<\/code>&#20320;&#20204;&#19968;&#23478;&#26381;&#21153;&#25552;&#20379;&#21830;&#37319;&#29992;&#30340;&#19968;&#31181;&#26041;&#27861;&#65292;&#36890;&#24120;<code>AppServiceProvider<\/code>&#24050;&#25910;&#21040;&#25351;&#20196;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><p>&#22914;&#26524;&#20320;&#26356;&#21916;&#27426;&#20351;&#29992;&#31867;&#65292;&#21487;&#20197;&#20808;&#36890;&#36807; Artisan &#21629;&#20196;&#29983;&#25104;&#23427;&#12290;<\/p><pre><code>php artisan make:provider ComposersServiceProvider<\/code><\/pre><p>&#28982;&#21518;&#65292;&#26381;&#21153;&#25552;&#20379;&#32773;&#20869;&#37096;&#21487;&#20197;&#32465;&#23450;&#35270;&#22270;&#32534;&#35793;&#31867;&#21040;&#35270;&#22270;&#65306;<\/p><pre><code>public function boot()\n{\n    View::composer(\n        'layouts.app',\n        'AppHttpViewComposersUserProfileComposer'\n    );\n}<\/code><\/pre><p>&#25509;&#19979;&#26469;&#65292;&#21019;&#24314;&#19968;&#20010; Composer &#31867;&#65292;&#22312;&#35270;&#22270; layouts.app &#34987;&#28210;&#26579;&#26102;&#35843;&#29992;&#65306;<\/p><pre><code>namespace AppHttpViewComposers;\n\nuse IlluminateViewView;\nuse IlluminateSupportFacadesAuth;\n\nclass UserProfileComposer\n{\n    public function compose(View $view)\n    {\n        $view-&gt;with('profile', Auth::user()-&gt;profile);\n    }\n}<\/code><\/pre><h2>&#23558;&#20316;&#26354;&#23478;&#19982;&#22810;&#20010;&#35270;&#22270;&#20851;&#32852;&#36215;&#26469;<\/h2><p>&#22914;&#26524;&#38656;&#35201;&#20026;&#22810;&#20010;&#35270;&#22270;&#38468;&#21152;&#19968;&#20010;&#32534;&#26354;&#23478;&#65292;&#21487;&#20197;&#23558;&#25968;&#32452;&#20316;&#20026;&#31532;&#19968;&#20010;&#21442;&#25968;&#20256;&#36882;&#65306;<\/p><pre><code>View::composer([\n    'dashboard',\n    'profile.index',\n    'layouts.app'\n], UserProfileComposer::class);<\/code><\/pre><h2>&#21019;&#24314;&#35270;&#22270;&#21019;&#36896;&#32773;<\/h2><p>&#35270;&#22270;&#21019;&#24314;&#32773;&#19982;&#35270;&#22270;&#32452;&#21512;&#22120;&#38750;&#24120;&#30456;&#20284;&#65292;&#20294;&#23427;&#20204;&#22312;&#35270;&#22270;&#23454;&#20363;&#21019;&#24314;&#21518;&#31435;&#21363;&#35843;&#29992;&#65292;&#32780;&#19981;&#26159;&#22312;&#35270;&#22270;&#28210;&#26579;&#26102;&#35843;&#29992;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#20351;&#29992;&#35270;&#22270;&#21019;&#24314;&#32773;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>View::creator('layouts.app', UserProfileComposer::class);<\/code><\/pre><h2>&#20256;&#36882;&#39069;&#22806;&#25968;&#25454;&#32473;&#20316;&#26354;&#23478;<\/h2><p>&#36824;&#21487;&#20197;&#36890;&#36807;&#31867;&#22411;&#25552;&#31034;&#23427;&#25152;&#38656;&#30340;&#20219;&#20309;&#20381;&#36182;&#39033;&#65292;&#35270;&#22270;&#32452;&#21512;&#22120;&#21487;&#20197;&#25509;&#25910;&#38500;&#20102;&#35270;&#22270;&#23454;&#20363;&#20043;&#22806;&#30340;&#39069;&#22806;&#25968;&#25454;&#12290;<code>compose<\/code>&#26041;&#27861;&#65306;<\/p><pre><code>use AppSegment;\n\nclass UserProfileComposer\n{\n    protected $segment;\n    \n    public function __construct(Segment $segment)\n    {\n        \/\/ Dependencies are automatically resolved by the service container...\n        $this-&gt;segment = $segment;\n    }\n\n    public function compose(View $view)\n    {\n        $view-&gt;with('profile', Auth::user()-&gt;profile);\n        $view-&gt;with('segment', $this-&gt;segment-&gt;get());\n    }\n}<\/code><\/pre><h2>&#27491;&#22312;&#27979;&#35797;&#35270;&#22270;&#32452;&#20214;&#12290;<\/h2><p>&#20351;&#29992;Laravel&#30340;&#35270;&#22270;&#32452;&#21512;&#22120;&#36827;&#34892;&#27979;&#35797;&#38750;&#24120;&#31616;&#21333;&#12290;&#20320;&#21487;&#20197;&#22312;&#19968;&#20010;&#27979;&#35797;&#20013;&#28210;&#26579;&#19968;&#20010;&#35270;&#22270;&#65292;&#28982;&#21518;&#23545;&#35270;&#22270;&#25968;&#25454;&#36827;&#34892;&#26029;&#35328;&#12290;&#35753;&#25105;&#20204;&#26469;&#30475;&#19968;&#20010;&#20363;&#23376;&#65306;<\/p><pre><code>\nuse TestsTestCase;\nclass ViewComposerTest extends TestCase\n{\n    public function testProfileDataIsBoundToView()\n    {\n        $user = factory(User::class)-&gt;create();\n\n        $this-&gt;actingAs($user)\n            -&gt;get('\/home')\n            -&gt;assertViewHas('profile', $user-&gt;profile);\n    }\n}\n<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>Laravel&#35270;&#22270;&#32452;&#21512;&#22120;&#25552;&#20379;&#20102;&#19968;&#31181;&#26041;&#20415;&#30340;&#26041;&#27861;&#65292;&#21487;&#20197;&#23558;&#20844;&#20849;&#25968;&#25454;&#20998;&#20139;&#32473;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#25152;&#26377;&#35270;&#22270;&#65292;&#20174;&#32780;&#20419;&#36827;&#26356;&#22909;&#30340;&#32452;&#32455;&#21644;&#20195;&#30721;&#28165;&#27905;&#24230;&#12290;&#36890;&#36807;&#24212;&#29992;&#26412;&#25351;&#21335;&#25552;&#20379;&#30340;&#27010;&#24565;&#21644;&#31034;&#20363;&#65292;&#24744;&#21487;&#20197;&#22686;&#24378;&#32500;&#25252;&#21644;&#25193;&#23637;&#24744;Laravel&#24212;&#29992;&#31243;&#24207;&#21069;&#31471;&#30340;&#33021;&#21147;&#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>Laravel &#26159;&#19968;&#20010;&#38750;&#24120;&#27969;&#34892;&#30340; PHP &#24320;&#21457;&#26694;&#26550;&#65292;&#23427;&#25552;&#20379;&#20102;&#24378;&#22823;&#30340;&#35270;&#22270;&#21151;&#33021;&#26469;&#24110;&#21161;&#24320;&#21457;&#32773;&#26500;&#24314;&#21644;&#31649;&#29702;&#32593;&#39029;&#12290;&#35270;&#22270;&#26159; Laravel &#24212;&#29992;&#31243;&#24207;&#30340;&#26680;&#24515;&#32452;&#25104;&#37096;&#20998;&#20043;&#19968;&#65292;&#29992;&#20110;&#28210;&#26579; HTML &#20195;&#30721;&#65292;&#24182;&#23558;&#25968;&#25454;&#19982;&#27169;&#26495;&#30456;&#32467;&#21512;&#12290;<\/p>\n<h3>&#35201;&#28857;&#65306;<\/h3>\n<ol>\n<li>\n<p><strong>&#29702;&#35299; Laravel &#30340;&#35270;&#22270;&#22522;&#30784;<\/strong><\/p>\n<ul>\n<li><strong>&#22522;&#26412;&#27010;&#24565;<\/strong>&#65306;&#35270;&#22270;&#26159;&#19968;&#32452; HTML &#20195;&#30721;&#29255;&#27573;&#65292;&#23427;&#20204;&#36127;&#36131;&#29983;&#25104;&#29305;&#23450;&#30340;&#39029;&#38754;&#20869;&#23481;&#12290;<\/li>\n<li><strong>&#35270;&#22270;&#25511;&#21046;&#22120;<\/strong>&#65306;&#35270;&#22270;&#25511;&#21046;&#22120;&#65288;&#36890;&#24120;&#20301;&#20110; <code>app\/Http\/Controllers<\/code> &#25991;&#20214;&#22841;&#65289;&#36127;&#36131;&#22788;&#29702;&#35270;&#22270;&#35831;&#27714;&#24182;&#36820;&#22238;&#30456;&#24212;&#30340; HTML&#12290;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#20351;&#29992; Laravel &#35270;&#22270;&#32452;&#21512;&#22120;<\/strong><\/p>\n<p>&#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#35270;&#22270;&#32452;&#21512;&#22120;&#23558;&#22810;&#20010;&#35270;&#22270;&#21512;&#24182;&#25104;&#19968;&#20010;&#23436;&#25972;&#30340;&#39029;&#38754;&#12290;&#36825;&#26377;&#21161;&#20110;&#20445;&#25345;&#20195;&#30721;&#25972;&#27905;&#65292;&#21516;&#26102;&#31616;&#21270;&#32500;&#25252;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#35270;&#22270;&#32452;&#21512;&#22120;&#30340;&#22522;&#26412;&#21407;&#29702;<\/strong><\/p>\n<p>&#35270;&#22270;&#32452;&#21512;&#22120;&#26159;&#19968;&#31181;&#24037;&#20855;&#65292;&#20801;&#35768;&#20320;&#22312; Laravel &#20013;&#21019;&#24314;&#22797;&#26434;&#30340;&#35270;&#22270;&#32467;&#26500;&#12290;&#23427;&#23558;&#19981;&#21516;&#30340;&#35270;&#22270;&#25991;&#20214;&#32452;&#21512;&#22312;&#19968;&#36215;&#65292;&#24418;&#25104;&#19968;&#20010;&#26032;&#30340;&#35270;&#22270;&#12290;&#36825;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#20960;&#31181;&#26041;&#24335;&#23454;&#29616;&#65306;<\/p>\n<\/li>\n<\/ol>\n<ul>\n<li><strong>&#32487;&#25215;&#33258;&#29238;&#31867;<\/strong>&#65306;&#21487;&#20197;&#32487;&#25215;&#29616;&#26377;&#35270;&#22270;&#30340;&#26576;&#20123;&#37096;&#20998;&#21040;&#26032;&#35270;&#22270;&#20013;&#65292;&#20363;&#22914;&#20351;&#29992; <code>@extends<\/code> &#25110;&#32773; <code>@parent<\/code> &#25351;&#20196;&#12290;<\/li>\n<li><strong>&#23884;&#22871;&#20351;&#29992;<\/strong>&#65306;&#21487;&#20197;&#23558;&#19968;&#20010;&#35270;&#22270;&#20013;&#30340;&#20869;&#23481;&#23884;&#20837;&#21478;&#19968;&#20010;&#35270;&#22270;&#20013;&#65292;&#20174;&#32780;&#36798;&#21040;&#23618;&#27425;&#21270;&#30340;&#25928;&#26524;&#12290;<\/li>\n<li><strong>&#20351;&#29992;&#32452;&#21512;&#25351;&#20196;<\/strong>&#65306;&#22312;&#35270;&#22270;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992; <code>@section<\/code> &#25110; <code>@slot<\/code> &#25351;&#20196;&#26469;&#25351;&#23450;&#21738;&#20123;&#21306;&#22495;&#24212;&#26174;&#31034;&#21738;&#20010;&#35270;&#22270;&#30340;&#20869;&#23481;&#12290;<\/li>\n<\/ul>\n<ol start=\"4\">\n<li><strong>&#31034;&#20363;&#20195;&#30721;<\/strong><\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ &#31034;&#20363;&#35270;&#22270;&#25511;&#21046;&#22120;\n\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesRoute;\n\nclass MyController extends Controller\n{\n    public function index(Request $request)\n    {\n        \/\/ &#21019;&#24314;&#35270;&#22270;\n        return view('my_view', [\n            'title' =&gt; 'My View',\n            'content' =&gt; 'Hello, World!'\n        ]);\n    }\n}\n\n\/\/ &#31034;&#20363;&#35270;&#22270;\n\n&lt;div&gt;\n    &lt;h1&gt;{{ $title }}&lt;\/h1&gt;\n    &lt;p&gt;{{ $content }}&lt;\/p&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#23450;&#20041;&#20102;&#19968;&#20010;&#21517;&#20026; <code>MyController<\/code> &#30340;&#25511;&#21046;&#22120;&#65292;&#35813;&#25511;&#21046;&#22120;&#26377;&#19968;&#20010;&#26041;&#27861; <code>index<\/code> &#26469;&#23637;&#31034;&#19968;&#20010;&#21517;&#20026; <code>my_view<\/code> &#30340;&#35270;&#22270;&#12290;&#35270;&#22270;&#21253;&#21547;&#20102;&#20004;&#20010;&#21464;&#37327; <code>$title<\/code> &#21644; <code>$content<\/code>&#65292;&#20998;&#21035;&#34920;&#31034;&#35270;&#22270;&#26631;&#39064;&#21644;&#20869;&#23481;&#12290;<\/p>\n<ol start=\"5\">\n<li>\n<p><strong>&#20248;&#21270;&#19982;&#24615;&#33021;&#32771;&#34385;<\/strong><\/p>\n<p>&#20351;&#29992;&#35270;&#22270;&#32452;&#21512;&#22120;&#26102;&#65292;&#35831;&#30830;&#20445;&#36981;&#24490;&#26368;&#20339;&#23454;&#36341;&#65292;&#22914;&#36991;&#20813;&#20887;&#20313;&#20195;&#30721;&#12289;&#23450;&#26399;&#23457;&#26597;&#21644;&#26356;&#26032;&#20195;&#30721;&#31561;&#65292;&#20197;&#25552;&#39640;&#24212;&#29992;&#31243;&#24207;&#30340;&#25972;&#20307;&#24615;&#33021;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#24635;&#32467;<\/strong><\/p>\n<p>&#20351;&#29992; Laravel &#35270;&#22270;&#32452;&#21512;&#22120;&#21487;&#20197;&#24110;&#21161;&#20320;&#26377;&#25928;&#22320;&#32452;&#32455;&#21644;&#31649;&#29702;&#22797;&#26434;&#30340;&#35270;&#22270;&#32467;&#26500;&#12290;&#36890;&#36807;&#20102;&#35299;&#35270;&#22270;&#30340;&#22522;&#30784;&#30693;&#35782;&#21644;&#22914;&#20309;&#21033;&#29992;&#35270;&#22270;&#32452;&#21512;&#22120;&#65292;&#20320;&#21487;&#20197;&#26356;&#36731;&#26494;&#22320;&#32534;&#20889;&#21644;&#32500;&#25252;&#39640;&#36136;&#37327;&#30340; Laravel &#24212;&#29992;&#31243;&#24207;&#12290;<\/p>\n<\/li>\n<\/ol>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#12298;Laravel &#35270;&#22270;&#32452;&#21512;&#22120;&#65306;&#23454;&#29992;&#25351;&#21335;&#12299; &#22312; Laravel &#20013;&#038;#..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-829","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"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\/829","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=829"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=829"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=829"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}