{"id":804,"date":"2025-06-12T00:07:42","date_gmt":"2025-06-11T16:07:42","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/804.html"},"modified":"2025-06-12T00:07:42","modified_gmt":"2025-06-11T16:07:42","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8laravel%e4%b8%ad%e5%88%9b%e5%bb%ba%e6%8e%a7%e5%88%b6%e5%99%a8%ef%bc%9a%e5%ae%9e%e8%b7%b5%e6%8c%87%e5%8d%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/804.html","title":{"rendered":"\u5982\u4f55\u5728Laravel\u4e2d\u521b\u5efa\u63a7\u5236\u5668\uff1a\u5b9e\u8df5\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>&#22312; Laravel &#20013;&#21019;&#24314;&#25511;&#21046;&#22120;&#26159;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#30340;&#20851;&#38190;&#27493;&#39588;&#20043;&#19968;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#35814;&#32454;&#30340;&#23454;&#36341;&#25351;&#21335;&#65292;&#24110;&#21161;&#20320;&#22312; Laravel &#20013;&#21019;&#24314;&#25511;&#21046;&#22120;&#12290;<\/p>\n<h3>1. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25511;&#21046;&#22120;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#22312;&#39033;&#30446;&#20013;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25511;&#21046;&#22120;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992; <code>make:controller<\/code> &#21629;&#20196;&#26469;&#23436;&#25104;&#36825;&#20010;&#20219;&#21153;&#12290;<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller UserController<\/code><\/pre>\n<p>&#36825;&#23558;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>UserController<\/code> &#30340;&#25991;&#20214;&#65292;&#24182;&#22312; <code>app\/Http\/Controllers<\/code> &#30446;&#24405;&#19979;&#12290;<\/p>\n<h3>2. &#32534;&#36753;&#25511;&#21046;&#22120;&#25991;&#20214;<\/h3>\n<p>&#25171;&#24320;&#20320;&#21018;&#21018;&#21019;&#24314;&#30340; <code>UserController.php<\/code> &#25991;&#20214;&#65292;&#24182;&#28155;&#21152;&#19968;&#20123;&#22522;&#26412;&#30340;&#26041;&#27861;&#12290;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n    public function index()\n    {\n        return view('users.index');\n    }\n\n    public function show($id)\n    {\n        $user = User::find($id);\n        return view('users.show', compact('user'));\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#23450;&#20041;&#20102;&#20004;&#20010;&#26041;&#27861;&#65306;<code>index<\/code> &#21644; <code>show<\/code>&#12290;<code>index<\/code> &#26041;&#27861;&#36820;&#22238;&#29992;&#25143;&#21015;&#34920;&#39029;&#38754;&#65292;&#32780; <code>show<\/code> &#26041;&#27861;&#36820;&#22238;&#21333;&#20010;&#29992;&#25143;&#30340;&#35814;&#32454;&#20449;&#24687;&#39029;&#38754;&#12290;<\/p>\n<h3>3. &#37197;&#32622;&#36335;&#30001;<\/h3>\n<p>&#25509;&#19979;&#26469;&#65292;&#25105;&#20204;&#38656;&#35201;&#37197;&#32622;&#36335;&#30001;&#20197;&#21305;&#37197;&#36825;&#20123;&#25511;&#21046;&#22120;&#30340;&#26041;&#27861;&#12290;&#25171;&#24320; <code>routes\/web.php<\/code> &#25991;&#20214;&#65292;&#24182;&#28155;&#21152;&#20197;&#19979;&#36335;&#30001;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppHttpControllersUserController;\n\nRoute::get('\/users', [UserController::class, 'index']);\nRoute::get('\/users\/{id}', [UserController::class, 'show']);<\/code><\/pre>\n<p>&#36825;&#37324;&#30340; <code>{id}<\/code> &#26159;&#19968;&#20010;&#21344;&#20301;&#31526;&#65292;&#29992;&#20110;&#21305;&#37197; URL &#20013;&#30340;&#29992;&#25143; ID&#12290;<\/p>\n<h3>4. &#21019;&#24314;&#35270;&#22270;&#25991;&#20214;<\/h3>\n<p>&#20026;&#20102;&#26174;&#31034;&#29992;&#25143;&#25968;&#25454;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#30456;&#24212;&#30340;&#35270;&#22270;&#25991;&#20214;&#12290;&#22312; <code>resources\/views\/users<\/code> &#30446;&#24405;&#19979;&#21019;&#24314;&#20197;&#19979;&#25991;&#20214;&#65306;<\/p>\n<ul>\n<li><code>index.blade.php<\/code><\/li>\n<li><code>show.blade.php<\/code><\/li>\n<\/ul>\n<p>&#20363;&#22914;&#65292;<code>index.blade.php<\/code> &#21487;&#33021;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;User List&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;User List&lt;\/h1&gt;\n    &lt;ul&gt;\n        @foreach ($users as $user)\n            &lt;li&gt;&lt;a href=\"{{ route('users.show', $user-&gt;id) }}\"&gt;{{ $user-&gt;name }}&lt;\/a&gt;&lt;\/li&gt;\n        @endforeach\n    &lt;\/ul&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#31867;&#20284;&#30340;&#65292;<code>show.blade.php<\/code> &#21487;&#33021;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;User Details&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;{{ $user-&gt;name }}&lt;\/h1&gt;\n    &lt;p&gt;Email: {{ $user-&gt;email }}&lt;\/p&gt;\n    &lt;!-- &#20854;&#20182;&#29992;&#25143;&#20449;&#24687; --&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>5. &#36816;&#34892;&#24212;&#29992;<\/h3>\n<p>&#26368;&#21518;&#65292;&#30830;&#20445;&#20320;&#30340;&#25968;&#25454;&#24211;&#24050;&#32463;&#37197;&#32622;&#22909;&#65292;&#24182;&#19988;&#26377;&#19968;&#20010; <code>User<\/code> &#27169;&#22411;&#21644;&#23545;&#24212;&#30340;&#36801;&#31227;&#25991;&#20214;&#12290;&#28982;&#21518;&#65292;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#21551;&#21160;&#24320;&#21457;&#26381;&#21153;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan serve<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#35775;&#38382; <code>http:\/\/localhost:8000\/users<\/code> &#26469;&#26597;&#30475;&#29992;&#25143;&#21015;&#34920;&#65292;&#24182;&#28857;&#20987;&#38142;&#25509;&#35775;&#38382;&#27599;&#20010;&#29992;&#25143;&#30340;&#35814;&#32454;&#20449;&#24687;&#12290;<\/p>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#24050;&#32463;&#22312; Laravel &#20013;&#25104;&#21151;&#21019;&#24314;&#20102;&#19968;&#20010;&#25511;&#21046;&#22120;&#65292;&#24182;&#37197;&#32622;&#20102;&#36335;&#30001;&#21644;&#35270;&#22270;&#25991;&#20214;&#12290;&#36825;&#20026;&#21518;&#32493;&#30340;&#24320;&#21457;&#24037;&#20316;&#25171;&#19979;&#20102;&#22362;&#23454;&#30340;&#22522;&#30784;&#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>Laravel &#26159;&#19968;&#31181;&#24191;&#27867;&#20351;&#29992;&#30340; PHP &#26694;&#26550;&#65292;&#31616;&#21270;&#20102; Web &#24212;&#29992;&#31243;&#24207;&#24320;&#21457;&#30340;&#36807;&#31243;&#12290;&#23427;&#25552;&#20379;&#20102;&#19968;&#31995;&#21015;&#21151;&#33021;&#65292;&#20854;&#20013;&#25511;&#21046;&#22120;&#26159;&#20854; MVC&#65288;&#27169;&#22411;-&#35270;&#22270;-&#25511;&#21046;&#22120;&#65289;&#26550;&#26500;&#20013;&#30340;&#22522;&#26412;&#32452;&#25104;&#37096;&#20998;&#12290;&#22312;&#36825;&#31687;&#25991;&#31456;&#20013;&#65292;&#25105;&#20204;&#23558;&#28145;&#20837;&#25506;&#35752;&#22914;&#20309;&#22312; Laravel &#20013;&#21019;&#24314;&#25511;&#21046;&#22120;&#65292;&#24110;&#21161;&#24320;&#21457;&#32773;&#39640;&#25928;&#22320;&#31649;&#29702;&#24212;&#29992;&#31243;&#24207;&#30340;&#36923;&#36753;&#12290;<\/p><h2>&#24320;&#22987;&#20351;&#29992;&#25511;&#21046;&#22120;<\/h2><p>&#25511;&#21046;&#22120;&#23558;&#30456;&#20851;&#35831;&#27714;&#22788;&#29702;&#36923;&#36753;&#23553;&#35013;&#22312;&#19968;&#20010;&#21333;&#29420;&#30340;&#31867;&#20013;&#12290;&#39318;&#20808;&#65292;&#35831;&#30830;&#20445;&#24050;&#23433;&#35013;Laravel&#24182;&#35774;&#32622;&#22909;&#39033;&#30446;&#12290;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#21019;&#24314;&#24744;&#30340;&#31532;&#19968;&#20010;&#25511;&#21046;&#22120;&#12290;<\/p><pre><code>php artisan make:controller MyFirstController\n<\/code><\/pre><p>&#35813;&#21629;&#20196;&#20250;&#22312; &#8216;app\/Http\/Controllers&#8217; &#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; &#8216;MyFirstController&#8217; &#30340;&#26032;&#25511;&#21046;&#22120;&#12290;&#35753;&#25105;&#20204;&#20808;&#22312;&#36825;&#20010;&#25511;&#21046;&#22120;&#20869;&#28155;&#21152;&#19968;&#20010;&#31616;&#21333;&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>public function show()\n{\n    return 'Hello, World!';\n}\n<\/code><\/pre><p>&#22312; routes\/web.php &#25991;&#20214;&#20013;&#30340;&#20851;&#32852;&#36335;&#30001;&#38656;&#35201;&#29992;&#26469;&#36890;&#36807;&#27983;&#35272;&#22120;&#35775;&#38382;&#27492;&#26041;&#27861;&#65306;<\/p><pre><code>Route::get('\/greet', 'MyFirstController@show');\n<\/code><\/pre><p>&#24403;&#20320;&#35775;&#38382;<a href=\"http:\/\/\">http:\/\/<\/a>{your-domain.com}\/greet&#26102;&#65292;&#20320;&#20250;&#30475;&#21040;&#25991;&#26412;&ldquo;Hello, World!&rdquo;&#26174;&#31034;&#20986;&#26469;&#12290;<\/p><h2>&#20256;&#36882;&#25968;&#25454;&#21040;&#35270;&#22270;<\/h2><p>&#36890;&#24120;&#65292;&#25511;&#21046;&#22120;&#20250;&#21521;&#35270;&#22270;&#20256;&#36882;&#25968;&#25454;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#20174;&#27169;&#22411;&#33719;&#21462;&#25968;&#25454;&#24182;&#23558;&#20854;&#20256;&#36882;&#21040;&#35270;&#22270;&#30340;&#31034;&#20363;&#25511;&#21046;&#22120;&#26041;&#27861;&#65306;<\/p><pre><code>public function index()\n{\n    $items = Item::all();\n    return view('items.index', compact('items'));\n}\n<\/code><\/pre><p>&#35813;&#20851;&#32852;&#35270;&#22270;&#25991;&#20214; resources\/views\/items\/index.blade.php &#21487;&#33021;&#30475;&#36215;&#26469;&#20687;&#36825;&#26679;&#65306;<\/p><pre><code>&lt;ul&gt;\n    @foreach ($items as $item)\n        &lt;li&gt;{{ $item-&gt;name }}&lt;\/li&gt;\n    @endforeach\n&lt;\/ul&gt;\n<\/code><\/pre><p>&#22312;&ldquo;routes\/web.php&rdquo;&#25991;&#20214;&#20013;&#30340;&ldquo;index&rdquo;&#36335;&#30001;&#25351;&#23450;&#20102;&#20351;&#29992;&#27492;&#25511;&#21046;&#22120;&#21160;&#20316;&#30340;URL&#36335;&#24452;&#65306;<\/p><pre><code>Route::get('\/items', 'ItemController@index');\n<\/code><\/pre><p>&#35775;&#38382;<a href=\"http:\/\/\">http:\/\/<\/a>{your-domain.com}\/items&#20250;&#26174;&#31034;&#19968;&#20010;&#29289;&#21697;&#21015;&#34920;&#12290;<\/p><h2>&#36164;&#28304;&#25511;&#21046;&#22120;<\/h2><p>Laravel &#20801;&#35768;&#20351;&#29992;&#36164;&#28304;&#25511;&#21046;&#22120;&#29983;&#25104;&#22120;&#33258;&#21160;&#21019;&#24314;CRUD&#65288;&#21019;&#24314;&#12289;&#35835;&#21462;&#12289;&#26356;&#26032;&#12289;&#21024;&#38500;&#65289;&#26041;&#27861;&#65306;<\/p><pre><code>php artisan make:controller ItemController --resource\n<\/code><\/pre><p>&#36825;&#23558;&#20250;&#20026;&#25152;&#26377;&#24517;&#35201;&#30340;&#26041;&#27861;&#25552;&#20379;&#39592;&#26550;&#12290;&#20320;&#21487;&#20197;&#24555;&#36895;&#23450;&#20041;&#36825;&#20123;&#25511;&#21046;&#22120;&#30340;&#36335;&#30001;&#65306;<\/p><pre><code>Route::resource('items', 'ItemController');\n<\/code><\/pre><p>&#36825;&#20123;&#36335;&#30001;&#36981;&#24490;RESTful&#35268;&#33539;&#65292;&#31616;&#21270;&#20102;&#24120;&#35265;&#30340;CRUD&#25805;&#20316;&#12290;<\/p><h2>&#20013;&#38388;&#20214;&#21644;&#25511;&#21046;&#22120;<\/h2><p>&#20013;&#38388;&#20214;&#21487;&#20197;&#29992;&#20110;&#36807;&#28388;&#36827;&#20837;&#24212;&#29992;&#31243;&#24207;&#30340;HTTP&#35831;&#27714;&#12290;&#25511;&#21046;&#22120;&#21487;&#20197;&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#25351;&#23450;&#20013;&#38388;&#20214;&#65306;<\/p><pre><code>public function __construct()\n{\n    $this-&gt;middleware('auth');\n}\n<\/code><\/pre><p>&#36825;&#23558;&#30830;&#20445;&#25511;&#21046;&#22120;&#20869;&#30340;&#25152;&#26377;&#36335;&#30001;&#20165;&#23545;&#24050;&#35748;&#35777;&#30340;&#29992;&#25143;&#24320;&#25918;&#12290;&#36824;&#21487;&#20197;&#38024;&#23545;&#29305;&#23450;&#26041;&#27861;&#36827;&#34892;&#38480;&#21046;&#65306;<\/p><pre><code>$this-&gt;middleware('log')-&gt;only('index');\n\n$this-&gt;middleware('subscribed')-&gt;except('store');\n<\/code><\/pre><h2>&#20381;&#36182;&#27880;&#20837;&#21644;&#25511;&#21046;&#22120;<\/h2><p>Laravel &#25903;&#25345;&#20381;&#36182;&#27880;&#20837;&#26469;&#20174;&#26381;&#21153;&#23481;&#22120;&#20013;&#35299;&#26500;&#26381;&#21153;&#12290;&#22312;&#25511;&#21046;&#22120;&#20013;&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#27880;&#20837;&#19968;&#20010;&#26381;&#21153;&#65306;<\/p><pre><code>use AppServicesPaymentService;\n\npublic function __construct(PaymentService $paymentService)\n{\n    $this-&gt;paymentService = $paymentService;\n}\n<\/code><\/pre><p>&#29616;&#22312;&#20320;&#21487;&#20197;&#20351;&#29992;&#20102;&#12290;<code>$this-&gt;paymentService<\/code>&#22312;&#20320;&#30340;&#26041;&#27861;&#20013;&#35775;&#38382;&#20854;&#21151;&#33021;&#12290;<\/p><h2>&#39640;&#32423;&#25511;&#21046;&#22120;&#25216;&#26415;<\/h2><p>&#38543;&#30528;&#24212;&#29992;&#31243;&#24207;&#30340;&#25193;&#23637;&#65292;&#24744;&#21487;&#33021;&#38656;&#35201;&#26356;&#39640;&#32423;&#21035;&#30340;&#25511;&#21046;&#22120;&#21151;&#33021;&#12290;Laravel &#25552;&#20379;&#20102;&#22788;&#29702;&#36825;&#20123;&#38656;&#27714;&#30340;&#21151;&#33021;&#65306;<\/p><h3>&#38544;&#24335;&#27169;&#22411;&#32465;&#23450;<\/h3><p>Laravel &#21487;&#20197;&#33258;&#21160;&#22312;&#36335;&#30001;&#20013;&#27880;&#20837;&#27169;&#22411;&#23454;&#20363;&#12290;&#20363;&#22914;&#65306;<\/p><pre><code>public function show(Item $item)\n{\n    return view('items.show', compact('item'));\n}\n<\/code><\/pre><p>&#22312;&#24744;&#30340;&#36335;&#32447;&#23450;&#20041;&#20013;&#65306;<\/p><pre><code>Route::get('items\/{item}', 'ItemController@show');\n<\/code><\/pre><p>Laravel &#23558;&#26816;&#32034;&#12290;<code>Item<\/code>&#19982;URL&#20013;&#30340;ID&#23545;&#24212;&#30340;&#23454;&#20363;&#12290;<\/p><h3>&#21333;&#21160;&#20316;&#25511;&#21046;&#22120;<\/h3><p>&#24403;&#25511;&#21046;&#22120;&#22788;&#29702;&#21333;&#20010;&#21160;&#20316;&#26102;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;__invoke&#26041;&#27861;&#65306;<\/p><pre><code>php artisan make:controller ShowProfile --invokable\n<\/code><\/pre><p>&#22312;&#25511;&#21046;&#22120;&#20013;&#23450;&#20041;&#19968;&#20010;&#21333;&#19968;&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>public function __invoke($id)\n{\n    \/\/ ...\n}\n<\/code><\/pre><p>&#23558;&#20854;&#32465;&#23450;&#21040;&#20197;&#19979;&#36335;&#30001;&#65306;<\/p><pre><code>Route::get('user\/{id}', 'ShowProfile');\n<\/code><\/pre><h2>&#27979;&#35797;&#25511;&#21046;&#22120;<\/h2><p>&#27979;&#35797;&#25511;&#21046;&#22120;&#20197;&#30830;&#20445;&#23427;&#20204;&#25353;&#39044;&#26399;&#24037;&#20316;&#26159;&#24456;&#37325;&#35201;&#30340;&#12290;Laravel &#36890;&#36807;&#27979;&#35797;&#26041;&#27861;&#31616;&#21270;&#20102;&#36825;&#19968;&#36807;&#31243;&#12290;&#36825;&#26159;&#19968;&#20010;&#39564;&#35777;&#29992;&#25143;&#21487;&#20197;&#26597;&#30475;&#39033;&#30446;&#30340;&#21151;&#33021;&#27979;&#35797;&#31034;&#20363;&#65306;<\/p><pre><code>public function testUserCanViewItems()\n{\n    $response = $this-&gt;get('\/items');\n    $response-&gt;assertStatus(200);\n    $response-&gt;assertSee('Item Name');\n}\n<\/code><\/pre><h2>&#32467;&#35770;<\/h2><p>Laravel&#25511;&#21046;&#22120;&#26159;&#32452;&#32455;Web&#24212;&#29992;&#31243;&#24207;&#36923;&#36753;&#30340;&#24378;&#22823;&#24037;&#20855;&#12290;&#36890;&#36807;&#36981;&#24490;&#26368;&#20339;&#23454;&#36341;&#65292;&#20998;&#31163;&#20851;&#27880;&#28857;&#24182;&#20805;&#20998;&#21033;&#29992;Laravel&#30340;&#21151;&#33021;&#65292;&#20320;&#21487;&#20197;&#26500;&#24314;&#21487;&#32500;&#25252;&#21644;&#27979;&#35797;&#30340;&#25511;&#21046;&#22120;&#12290;&#29992;&#20248;&#38597;&#21644;&#31934;&#30830;&#30340;&#26041;&#24335;&#25511;&#21046;&#20320;&#30340;&#24212;&#29992;&#36923;&#36753;&#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;Laravel&#20013;&#21019;&#24314;&#25511;&#21046;&#22120;&#65292;&#39318;&#20808;&#38656;&#35201;&#30830;&#20445;&#24050;&#32463;&#23433;&#35013;&#20102;Laravel&#24182;&#37197;&#32622;&#22909;&#29615;&#22659;&#12290;&#25509;&#19979;&#26469;&#65292;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#36827;&#34892;&#25805;&#20316;&#65306;<\/p>\n<h3>&#27493;&#39588; 1: &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#39033;&#30446;<\/h3>\n<p>&#20351;&#29992;&#21629;&#20196;&#34892;&#24037;&#20855;&#65288;&#22914;<code>composer create-project --prefer-dist laravel\/laravel my-project<\/code>&#65289;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Laravel &#39033;&#30446;&#12290;<\/p>\n<h3>&#27493;&#39588; 2: &#36827;&#20837;&#39033;&#30446;&#30446;&#24405;<\/h3>\n<p>&#36827;&#20837;&#21018;&#21018;&#21019;&#24314;&#30340;&#39033;&#30446;&#30446;&#24405;&#65306;<\/p>\n<pre><code class=\"language-bash\">cd my-project<\/code><\/pre>\n<h3>&#27493;&#39588; 3: &#23433;&#35013;&#25511;&#21046;&#22120;<\/h3>\n<p>&#25171;&#24320;&#32456;&#31471;&#65292;&#28982;&#21518;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#23433;&#35013;&#25511;&#21046;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller UserController<\/code><\/pre>\n<p>&#36825;&#23558;&#33258;&#21160;&#20026;&#20320;&#29983;&#25104;&#19968;&#20010;&#21517;&#20026; <code>UserController.php<\/code> &#30340;&#25991;&#20214;&#65292;&#35813;&#25991;&#20214;&#23450;&#20041;&#20102;&#19968;&#20010;&#25511;&#21046;&#22120;&#31867;&#12290;<\/p>\n<h3>&#27493;&#39588; 4: &#32534;&#36753;&#25511;&#21046;&#22120;&#25991;&#20214;<\/h3>\n<p>&#20999;&#25442;&#21040;&#29983;&#25104;&#30340;&#25511;&#21046;&#22120;&#25991;&#20214;&#25152;&#22312;&#30340;&#30446;&#24405;&#65292;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-bash\">cd resources\/views<\/code><\/pre>\n<p>&#25214;&#21040;&#25511;&#21046;&#22120;&#25991;&#20214;&#65288;&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#26159; <code>UserController.php<\/code>&#65289;&#65292;&#32534;&#36753;&#23427;&#65292;&#28155;&#21152;&#19968;&#20123;&#22522;&#26412;&#30340;&#36923;&#36753;&#21644;&#35270;&#22270;&#65288;&#22914;&#26524;&#26377;&#30340;&#35805;&#65289;&#12290;&#36825;&#37324;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse AppModelsUser;\n\nclass UserController extends Controller\n{\n    public function index()\n    {\n        $users = User::all();\n        return view('users.index', compact('users'));\n    }\n}<\/code><\/pre>\n<h3>&#27493;&#39588; 5: &#37197;&#32622;&#36335;&#30001;<\/h3>\n<p>&#20026;&#20102;&#20351;&#25511;&#21046;&#22120;&#24037;&#20316;&#65292;&#20320;&#38656;&#35201;&#20026;&#25511;&#21046;&#22120;&#20013;&#30340;&#26041;&#27861;&#35774;&#32622;&#36335;&#30001;&#12290;&#25171;&#24320; <code>routes\/web.php<\/code> &#25991;&#20214;&#65292;&#24182;&#28155;&#21152;&#22914;&#19979;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">Route::get('\/users', 'UserController@index');<\/code><\/pre>\n<h3>&#27493;&#39588; 6: &#21019;&#24314;&#35270;&#22270;<\/h3>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#35775;&#38382; <code>\/users<\/code> &#36335;&#30001;&#26469;&#26174;&#31034;&#29992;&#25143;&#30340;&#21015;&#34920;&#12290;&#35201;&#21019;&#24314;&#35270;&#22270;&#65292;&#35831;&#25191;&#34892;&#20197;&#19979;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>&#22312;&#39033;&#30446;&#30340;&#26681;&#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#26032;&#25991;&#20214;&#22841;&#65292;&#20363;&#22914; <code>resources\/views\/users\/<\/code>&#12290;<\/li>\n<li>&#22312;&#36825;&#20010;&#25991;&#20214;&#22841;&#20869;&#65292;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>index.blade.php<\/code> &#30340;&#35270;&#22270;&#25991;&#20214;&#65292;&#29992;&#20110;&#26174;&#31034;&#29992;&#25143;&#21015;&#34920;&#12290;<\/li>\n<\/ol>\n<h3>&#27493;&#39588; 7: &#20351;&#29992;&#25511;&#21046;&#22120;&#21644;&#35270;&#22270;<\/h3>\n<p>&#26368;&#21518;&#19968;&#27493;&#26159;&#22312;&#21069;&#31471;&#24212;&#29992;&#36825;&#20123;&#21151;&#33021;&#12290;&#22914;&#26524;&#20320;&#27491;&#22312;&#20351;&#29992; Vue.js &#25110; React&#65292;&#21487;&#20197;&#20351;&#29992; <code>axios<\/code> &#25110; <code>fetch<\/code> API &#26469;&#33719;&#21462;&#25968;&#25454;&#12290;&#19979;&#38754;&#26159;&#22914;&#20309;&#22312; Vue &#20013;&#23454;&#29616;&#30340;&#19968;&#20010;&#31616;&#21333;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-vue\">&lt;template&gt;\n  &lt;div&gt;\n    &lt;table&gt;\n      &lt;thead&gt;\n        &lt;tr&gt;\n          &lt;th&gt;Name&lt;\/th&gt;\n          &lt;th&gt;Email&lt;\/th&gt;\n        &lt;\/tr&gt;\n      &lt;\/thead&gt;\n      &lt;tbody&gt;\n        &lt;tr v-for=\"user in users\" :key=\"user.id\"&gt;\n          &lt;td&gt;{{ user.name }}&lt;\/td&gt;\n          &lt;td&gt;{{ user.email }}&lt;\/td&gt;\n        &lt;\/tr&gt;\n      &lt;\/tbody&gt;\n    &lt;\/table&gt;\n  &lt;\/div&gt;\n&lt;\/template&gt;\n\n&lt;script&gt;\nimport { mapGetters } from 'vuex';\n\nexport default {\n  computed: {\n    ...mapGetters(['users']),\n  },\n};\n&lt;\/script&gt;<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#36825;&#26159;&#19968;&#20010;&#26356;&#22797;&#26434;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22788;&#29702;&#26356;&#22797;&#26434;&#30340;&#25968;&#25454;&#32467;&#26500;&#65306;<\/p>\n<pre><code class=\"language-php\">public function store(Request $request)\n{\n    $data = $request-&gt;validate([\n        'name' =&gt; 'required|string|max:255',\n        'email' =&gt; 'required|email|unique:users,email',\n    ]);\n\n    $user = new User($data);\n    if ($this-&gt;create($user)) {\n        return redirect()-&gt;route('users.index')-&gt;with('success', 'User created successfully.');\n    }\n\n    return back()-&gt;withErrors(['message' =&gt; 'Failed to create user']);\n}\n\n\/\/ ...&#20854;&#20182;&#23384;&#20648;&#20989;&#25968;...<\/code><\/pre>\n<h3>&#32467;&#35770;<\/h3>\n<p>&#20197;&#19978;&#23601;&#26159;&#21019;&#24314;&#25511;&#21046;&#22120;&#30340;&#22522;&#26412;&#27493;&#39588;&#12290;&#24076;&#26395;&#36825;&#23545;&#20320;&#26377;&#25152;&#24110;&#21161;&#65281;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#30097;&#38382;&#25110;&#38656;&#35201;&#36827;&#19968;&#27493;&#30340;&#24110;&#21161;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#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; Laravel &#20013;&#21019;&#24314;&#25511;&#21046;&#22120;&#26159;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#038;#3034..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-804","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\/804","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=804"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=804"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=804"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}