{"id":1024,"date":"2025-06-12T05:07:04","date_gmt":"2025-06-11T21:07:04","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/1024.html"},"modified":"2025-06-12T05:07:04","modified_gmt":"2025-06-11T21:07:04","slug":"laravel-%e7%a4%ba%e4%be%8b%ef%bc%9a%e4%b8%ba%e7%a4%be%e4%ba%a4%e5%aa%92%e4%bd%93%e5%b9%b3%e5%8f%b0%e5%ae%9a%e4%b9%89%e8%b7%af%e7%94%b1","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1024.html","title":{"rendered":"Laravel \u793a\u4f8b\uff1a\u4e3a\u793e\u4ea4\u5a92\u4f53\u5e73\u53f0\u5b9a\u4e49\u8def\u7531"},"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>&#22909;&#30340;&#65292;&#35753;&#25105;&#20204;&#26469;&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;&#65292;&#24182;&#23450;&#20041;&#19968;&#20123;&#22522;&#26412;&#30340;&#36335;&#30001;&#26469;&#22788;&#29702;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#30340;&#21151;&#33021;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;Laravel&#12290;&#22914;&#26524;&#27809;&#26377;&#23433;&#35013;&#65292;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#21629;&#20196;&#36827;&#34892;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer create-project --prefer-dist laravel\/laravel social-media-platform\ncd social-media-platform<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#25105;&#20204;&#20250;&#22312;<code>routes\/web.php<\/code>&#25991;&#20214;&#20013;&#23450;&#20041;&#19968;&#20123;&#22522;&#26412;&#30340;&#36335;&#30001;&#12290;<\/p>\n<h3>1. &#23450;&#20041;&#22522;&#26412;&#36335;&#30001;<\/h3>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\n\nuse IlluminateSupportFacadesRoute;\n\nRoute::get('\/', function () {\n    return view('welcome');\n});\n\nRoute::get('\/posts', 'PostController@index')-&gt;name('posts.index');\n\nRoute::get('\/posts\/create', 'PostController@create')-&gt;name('posts.create');\nRoute::post('\/posts', 'PostController@store')-&gt;name('posts.store');\n\nRoute::get('\/posts\/{id}', 'PostController@show')-&gt;name('posts.show');\nRoute::put('\/posts\/{id}', 'PostController@update')-&gt;name('posts.update');\nRoute::delete('\/posts\/{id}', 'PostController@destroy')-&gt;name('posts.destroy');<\/code><\/pre>\n<h3>2. &#21019;&#24314;&#25511;&#21046;&#22120;<\/h3>\n<p>&#25105;&#20204;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;&#19982;&#24086;&#23376;&#30456;&#20851;&#30340;&#25805;&#20316;&#12290;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25511;&#21046;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller PostController<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#22312;<code>app\/Http\/Controllers\/PostController.php<\/code>&#25991;&#20214;&#20013;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse AppModelsPost;\n\nclass PostController extends Controller\n{\n    public function index()\n    {\n        $posts = Post::all();\n        return view('posts.index', compact('posts'));\n    }\n\n    public function create()\n    {\n        return view('posts.create');\n    }\n\n    public function store(Request $request)\n    {\n        $validatedData = $request-&gt;validate([\n            'title' =&gt; 'required|string|max:255',\n            'content' =&gt; 'required|string',\n        ]);\n\n        $post = new Post($validatedData);\n        $post-&gt;save();\n\n        return redirect()-&gt;route('posts.index')-&gt;with('success', 'Post created successfully!');\n    }\n\n    public function show(Post $post)\n    {\n        return view('posts.show', compact('post'));\n    }\n\n    public function update(Request $request, Post $post)\n    {\n        $validatedData = $request-&gt;validate([\n            'title' =&gt; 'required|string|max:255',\n            'content' =&gt; 'required|string',\n        ]);\n\n        $post-&gt;update($validatedData);\n\n        return redirect()-&gt;route('posts.show', $post)-&gt;with('success', 'Post updated successfully!');\n    }\n\n    public function destroy(Post $post)\n    {\n        $post-&gt;delete();\n\n        return redirect()-&gt;route('posts.index')-&gt;with('success', 'Post deleted successfully!');\n    }\n}<\/code><\/pre>\n<h3>3. &#21019;&#24314;&#35270;&#22270;<\/h3>\n<p>&#29616;&#22312;&#65292;&#25105;&#20204;&#38656;&#35201;&#21019;&#24314;&#19968;&#20123;&#35270;&#22270;&#26469;&#26174;&#31034;&#21644;&#32534;&#36753;&#24086;&#23376;&#12290;&#22312;<code>resources\/views\/posts<\/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>create.blade.php<\/code><\/li>\n<li><code>show.blade.php<\/code><\/li>\n<li><code>edit.blade.php<\/code><\/li>\n<\/ul>\n<h4><code>index.blade.php<\/code><\/h4>\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;Social Media Platform&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Posts&lt;\/h1&gt;\n    @if (session('success'))\n        &lt;div class=\"alert alert-success\"&gt;{{ session('success') }}&lt;\/div&gt;\n    @endif\n    &lt;a href=\"{{ route('posts.create') }}\" class=\"btn btn-primary\"&gt;Create New Post&lt;\/a&gt;\n    &lt;table class=\"table\"&gt;\n        &lt;thead&gt;\n            &lt;tr&gt;\n                &lt;th&gt;Title&lt;\/th&gt;\n                &lt;th&gt;Content&lt;\/th&gt;\n                &lt;th&gt;Action&lt;\/th&gt;\n            &lt;\/tr&gt;\n        &lt;\/thead&gt;\n        &lt;tbody&gt;\n            @foreach ($posts as $post)\n                &lt;tr&gt;\n                    &lt;td&gt;{{ $post-&gt;title }}&lt;\/td&gt;\n                    &lt;td&gt;{{ $post-&gt;content }}&lt;\/td&gt;\n                    &lt;td&gt;\n                        &lt;a href=\"{{ route('posts.edit', $post) }}\" class=\"btn btn-warning\"&gt;Edit&lt;\/a&gt;\n                        &lt;form action=\"{{ route('posts.destroy', $post) }}\" method=\"POST\" style=\"display: inline;\"&gt;\n                            @csrf\n                            @method('DELETE')\n                            &lt;button type=\"submit\" class=\"btn btn-danger\"&gt;Delete&lt;\/button&gt;\n                        &lt;\/form&gt;\n                    &lt;\/td&gt;\n                &lt;\/tr&gt;\n            @endforeach\n        &lt;\/tbody&gt;\n    &lt;\/table&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h4><code>create.blade.php<\/code><\/h4>\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;Create New Post&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Create New Post&lt;\/h1&gt;\n    @if (session('error'))\n        &lt;div class=\"alert alert-danger\"&gt;{{ session('error') }}&lt;\/div&gt;\n    @endif\n    &lt;form action=\"{{ route('posts.store') }}\" method=\"POST\"&gt;\n        @csrf\n        &lt;div class=\"form-group\"&gt;\n            &lt;label for=\"title\"&gt;Title&lt;\/label&gt;\n            &lt;input type=\"text\" id=\"title\" name=\"title\" class=\"form-control\" required&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"form-group\"&gt;\n            &lt;label for=\"content\"&gt;Content&lt;\/label&gt;\n            &lt;textarea id=\"content\" name=\"content\" class=\"form-control\" required&gt;&lt;\/textarea&gt;\n        &lt;\/div&gt;\n        &lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Create Post&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h4><code>show.blade.php<\/code><\/h4>\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;Show Post&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;{{ $post-&gt;title }}&lt;\/h1&gt;\n    &lt;p&gt;{{ $post-&gt;content }}&lt;\/p&gt;\n    &lt;a href=\"{{ route('posts.edit', $post) }}\" class=\"btn btn-warning\"&gt;Edit&lt;\/a&gt;\n    &lt;form action=\"{{ route('posts.destroy', $post) }}\" method=\"POST\" style=\"display: inline;\"&gt;\n        @csrf\n        @method('DELETE')\n        &lt;button type=\"submit\" class=\"btn btn-danger\"&gt;Delete&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h4><code>edit.blade.php<\/code><\/h4>\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;Edit Post&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Edit Post&lt;\/h1&gt;\n    @if (session('error'))\n        &lt;div class=\"alert alert-danger\"&gt;{{ session('error') }}&lt;\/div&gt;\n    @endif\n    &lt;form action=\"{{ route('posts.update', $post) }}\" method=\"POST\"&gt;\n        @csrf\n        @method('PUT')\n        &lt;div class=\"form-group\"&gt;\n            &lt;label for=\"title\"&gt;Title&lt;\/label&gt;\n            &lt;input type=\"text\" id=\"title\" name=\"title\" class=\"form-control\" value=\"{{ $post-&gt;title }}\" required&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"form-group\"&gt;\n            &lt;label for=\"content\"&gt;Content&lt;\/label&gt;\n            &lt;textarea id=\"content\" name=\"content\" class=\"form-control\" value=\"{{ $post-&gt;content }}\" required&gt;&lt;\/textarea&gt;\n        &lt;\/div&gt;\n        &lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Update Post&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#20320;&#23601;&#21019;&#24314;&#20102;&#19968;&#20010;&#22522;&#26412;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;&#65292;&#24182;&#23450;&#20041;&#20102;&#19968;&#20123;&#22522;&#26412;&#30340;&#36335;&#30001;&#26469;&#22788;&#29702;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#30340;&#21151;&#33021;&#12290;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#36827;&#19968;&#27493;&#25193;&#23637;&#21644;&#20462;&#25913;&#36825;&#20010;&#24212;&#29992;&#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>&#22312;&#32593;&#39029;&#24320;&#21457;&#30340;&#19990;&#30028;&#37324;&#65292;&#21019;&#24314;&#19968;&#20010;&#27969;&#30021;&#30340;&#23548;&#33322;&#20307;&#39564;&#23545;&#20110;&#25552;&#39640;&#29992;&#25143;&#21442;&#19982;&#24230;&#33267;&#20851;&#37325;&#35201;&#12290;Laravel &#26159;&#19968;&#27454;&#24378;&#22823;&#30340; PHP &#26694;&#26550;&#65292;&#25552;&#20379;&#20102;&#26131;&#20110;&#20351;&#29992;&#30340;&#36335;&#30001;&#31995;&#32479;&#65292;&#36825;&#26377;&#21161;&#20110;&#23454;&#29616;&#36825;&#19968;&#30446;&#26631;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992; Laravel &#23450;&#20041;&#29992;&#20110;&#31616;&#21333;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#30340;&#36335;&#30001;&#12290;&#20174;&#29992;&#25143;&#36523;&#20221;&#39564;&#35777;&#21040;&#20010;&#20154;&#36164;&#26009;&#31649;&#29702;&#20197;&#21450;&#20869;&#23481;&#20998;&#20139;&#31561;&#26041;&#38754;&#65292;&#25105;&#20204;&#23558;&#20250;&#28085;&#30422;&#23454;&#29616;&#31038;&#20132;&#32593;&#32476;&#20851;&#38190;&#21151;&#33021;&#25152;&#38656;&#30340;&#24517;&#35201;&#36335;&#30001;&#12290;<\/p><h2>&#35774;&#32622;&#24744;&#30340;&#29615;&#22659;<\/h2><p>&#22312;&#25105;&#20204;&#23450;&#20041;&#36335;&#30001;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24050;&#32463;&#23433;&#35013;&#20102;Laravel&#12290;&#24744;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#25991;&#31456;&#20013;&#30340;&#27493;&#39588;&#20043;&#19968;&#36827;&#34892;&#23433;&#35013;&#65306;&#26681;&#25454;&#24744;&#30340;&#24179;&#21488;&#36873;&#25321;&#20854;&#20013;&#20043;&#19968;&#12290;<\/p><p>&#22914;&#20309;&#22312;Ubuntu&#19978;&#23433;&#35013;&#21644;&#37197;&#32622;Laravel&#65288;&#20351;&#29992;Nginx&#65289;<\/p><p>&#22312;Windows&#21644;Mac&#19978;&#23433;&#35013;Laravel&#30340;&#27493;&#39588;&#22914;&#19979;&#65306;\n\n&#39318;&#20808;&#65292;&#30830;&#20445;&#24744;&#30340;&#35745;&#31639;&#26426;&#24050;&#32463;&#23433;&#35013;&#20102;PHP&#21644;Composer&#12290;\n\n&#19979;&#36733;&#24182;&#35299;&#21387;Laravel&#26694;&#26550;&#12290;\n\n&#22312;&#21629;&#20196;&#34892;&#20013;&#65292;&#20351;&#29992;composer&#21629;&#20196;&#23433;&#35013;Laravel&#65306;\ncomposer create-project &#8211;prefer-dist laravel\/laravel your_project_name\n\n&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#20197;&#21019;&#24314;&#25968;&#25454;&#24211;&#34920;&#65306;\nphp artisan migrate\n\n&#23433;&#35013;&#24517;&#35201;&#30340;&#20381;&#36182;&#39033;&#65306;\nnpm install\n\n&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;&#20197;&#20415;&#22312;&#21629;&#20196;&#34892;&#20013;&#36816;&#34892;php artisan&#12290;\n\n&#21551;&#21160;&#24320;&#21457;&#26381;&#21153;&#22120;&#65306;\nphp artisan serve\n\n&#29616;&#22312;&#24744;&#24212;&#35813;&#21487;&#20197;&#22312;&#27983;&#35272;&#22120;&#20013;&#35775;&#38382;&#24744;&#30340;laravel&#24212;&#29992;&#12290;\n&#35831;&#27880;&#24847;&#65292;&#36825;&#20123;&#27493;&#39588;&#21487;&#33021;&#20250;&#26681;&#25454;&#24744;&#30340;&#20855;&#20307;&#38656;&#27714;&#30053;&#26377;&#19981;&#21516;&#12290;&#24314;&#35758;&#26597;&#38405;&#23448;&#26041;&#25991;&#26723;&#25110;&#25628;&#32034;&#30456;&#20851;&#25945;&#31243;&#20197;&#33719;&#21462;&#26356;&#35814;&#32454;&#30340;&#20449;&#24687;&#12290;<\/p><p>&#22914;&#20309;&#20351;&#29992;Docker Compose&#35774;&#32622;Laravel&#29615;&#22659;<\/p><p>&#19968;&#26086;&#23433;&#35013;&#22909;Laravel&#65292;&#23601;&#21487;&#20197;&#24320;&#22987;&#23450;&#20041;&#36335;&#30001;&#20102;&#12290;<\/p><h2>&#29702;&#35299;Laravel&#20013;&#30340;&#36335;&#30001;&#65288;Routing&#65289;<\/h2><p>&#22312;&#20301;&#20110;&#36335;&#30001;&#30446;&#24405;&#19979;&#30340; web.php &#25991;&#20214;&#20013;&#65292;&#36890;&#24120;&#26159;&#23450;&#20041;&#36335;&#30001;&#30340;&#22320;&#26041;&#12290;&#22312; Laravel &#20013;&#65292;&#36335;&#30001;&#21709;&#24212; URL &#35831;&#27714;&#24182;&#23558;&#20854;&#23450;&#21521;&#21040;&#36866;&#24403;&#30340;&#25511;&#21046;&#22120;&#12290;&#20026;&#20102;&#36825;&#20010;&#31034;&#20363;&#65292;&#35753;&#25105;&#20204;&#26500;&#24314;&#19968;&#20010;&#31616;&#21270;&#30340;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&ldquo;Larasocial&rdquo;&#12290;<\/p><h3>&#22522;&#26412;&#30340;GET&#36335;&#30001;<\/h3><pre><code>Route::get('\/', function () {\n    return view('welcome');\n});\n\nRoute::get('\/home', 'HomeController@index')-&gt;name('home');\n<\/code><\/pre><p>&#31532;&#19968;&#31181;&ldquo;&#33719;&#21462;&rdquo;&#36335;&#30001;&#23450;&#20041;&#20102;&#25105;&#20204;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#39318;&#39029;&#65292;&#31532;&#20108;&#31181;&#36335;&#30001;&#23558;URI &ldquo;\/home&rdquo; &#32465;&#23450;&#21040;HomeController&#30340;index&#26041;&#27861;&#19978;&#12290;<\/p><h3>&#29992;&#25143;&#36523;&#20221;&#39564;&#35777;&#36335;&#30001;<\/h3><p>&#35748;&#35777;&#26159;&#20219;&#20309;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#19981;&#21487;&#25110;&#32570;&#30340;&#19968;&#37096;&#20998;&#12290;Laravel &#20351;&#24471;&#20351;&#29992; Laravel Breeze&#12289;Jetstream &#25110; Fortify &#26500;&#24314;&#23436;&#25972;&#30340;&#35748;&#35777;&#21464;&#24471;&#38750;&#24120;&#23481;&#26131;&#12290;&#22312;&#26412;&#20363;&#20013;&#65292;&#25105;&#20204;&#23558;&#28155;&#21152;&#39044;&#23450;&#20041;&#30340; Breeze &#36335;&#30001;&#65306;<\/p><pre><code>php artisan breeze:install\n<\/code><\/pre><p>&#35813;&#21629;&#20196;&#20026;&#27880;&#20876;&#12289;&#30331;&#24405;&#12289;&#23494;&#30721;&#25214;&#22238;&#21644;&#39564;&#35777;&#31561;&#25805;&#20316;&#28155;&#21152;&#20102;&#20960;&#20010;&#36335;&#30001;&#65292;&#36825;&#20123;&#36335;&#30001;&#21487;&#20197;&#31245;&#21518;&#26681;&#25454;&#25105;&#20204;&#30340;&#38656;&#27714;&#36827;&#34892;&#23450;&#21046;&#12290;<\/p><h2>&#29992;&#25143;&#31649;&#29702;<\/h2><p>&#29992;&#25143;&#38656;&#35201;&#26597;&#30475;&#21644;&#32534;&#36753;&#20010;&#20154;&#36164;&#26009;&#65292;&#36825;&#38656;&#35201;&#39069;&#22806;&#30340;&#36335;&#30001;&#65306;<\/p><pre><code>Route::prefix('user')-&gt;middleware('auth')-&gt;group(function () {\n    Route::get('\/profile', 'UserProfileController@show')-&gt;name('profile.show');\n    Route::get('\/edit', 'UserProfileController@edit')-&gt;name('profile.edit');\n    Route::put('\/update', 'UserProfileController@update')-&gt;name('profile.update');\n});\n<\/code><\/pre><p>&#25105;&#20204;&#25226;&#19982;&#29992;&#25143;&#36164;&#26009;&#30456;&#20851;&#30340;&#36335;&#30001;&#25918;&#22312;&#19968;&#36215;&#65292;&#36825;&#20123;&#36335;&#30001;&#37117;&#36890;&#36807;&lsquo;auth&rsquo;&#20013;&#38388;&#20214;&#20445;&#25252;&#65292;&#30830;&#20445;&#21482;&#26377;&#24050;&#35748;&#35777;&#30340;&#29992;&#25143;&#25165;&#33021;&#35775;&#38382;&#12290;<\/p><h2>&#19982;&#26379;&#21451;&#20445;&#25345;&#32852;&#31995;<\/h2><p>&#20026;&#20102;&#19982;&#26379;&#21451;&#20114;&#21160;&#65292;&#36335;&#30001;&#37197;&#32622;&#20801;&#35768;&#20197;&#19979;&#21151;&#33021;&#65306;<\/p><pre><code>Route::middleware('auth')-&gt;group(function () {\n    Route::get('\/friends', 'FriendsController@index')-&gt;name('friends.index');\n    Route::post('\/friends\/add\/{user}', 'FriendsController@add')-&gt;name('friends.add');\n    Route::delete('\/friends\/remove\/{user}', 'FriendsController@remove')-&gt;name('friends.remove');\n});\n<\/code><\/pre><p>&#36825;&#27573;&#20195;&#30721;&#29255;&#27573;&#23637;&#31034;&#20102;&#19968;&#20010;&#23433;&#20840;&#30340;&#32852;&#31995;&#20154;&#21015;&#34920;&#12289;&#28155;&#21152;&#26032;&#26379;&#21451;&#30340;&#21151;&#33021;&#20197;&#21450;&#20174;&#32593;&#32476;&#20013;&#31227;&#38500;&#22909;&#21451;&#30340;&#36873;&#25321;&#12290;<\/p><h2>&#21457;&#24067;&#20869;&#23481;<\/h2><p>&#22312;&#31038;&#20132;&#23186;&#20307;&#19978;&#65292;&#29992;&#25143;&#32463;&#24120;&#21457;&#24067;&#20869;&#23481;&#12290;&#22312;Larasocial&#20013;&#65292;&#25105;&#20204;&#22788;&#29702;&#36825;&#31181;&#29616;&#35937;&#30340;&#26041;&#24335;&#26159;&#65306;<\/p><pre><code>Route::resource('posts', 'PostController');\n<\/code><\/pre><p>&#20351;&#29992;&#36164;&#28304;&#26041;&#27861;&#21019;&#24314;&#19982;&#25511;&#21046;&#22120;&#20851;&#32852;&#30340;CRUD&#65288;&#21019;&#24314;&#12289;&#35835;&#21462;&#12289;&#26356;&#26032;&#21644;&#21024;&#38500;&#65289;&#25805;&#20316;&#36335;&#30001;&#26159;&#19968;&#31181;&#24555;&#36895;&#30340;&#26041;&#27861;&#12290;<\/p><h2>&#28155;&#21152;&#35780;&#35770;<\/h2><p>&#20114;&#21160;&#24615;&#22312;&#31038;&#20132;&#24179;&#21488;&#19978;&#33267;&#20851;&#37325;&#35201;&#65292;&#20801;&#35768;&#24086;&#23376;&#19979;&#30340;&#35780;&#35770;&#20063;&#26159;&#20854;&#20013;&#20043;&#19968;&#12290;&#20197;&#19979;&#26159;&#25105;&#20204;&#22312;&#28155;&#21152;&#35780;&#35770;&#36335;&#30001;&#26102;&#21487;&#20197;&#32771;&#34385;&#30340;&#20960;&#31181;&#26041;&#24335;&#65306;<\/p><pre><code>\nRoute::post('\/posts\/{post}\/comments', 'CommentsController@store')-&gt;name('comments.store');\nRoute::delete('\/comments\/{comment}', 'CommentsController@destroy')-&gt;name('comments.destroy');\n<\/code><\/pre><p>&#36825;&#20351;&#24471;&#29992;&#25143;&#33021;&#22815;&#28155;&#21152;&#35780;&#35770;&#24182;&#21024;&#38500;&#20182;&#20204;&#30340;&#35780;&#35770;&#65292;&#21516;&#26102;&#27599;&#20010;&#35780;&#35770;&#37117;&#21487;&#20197;&#19982;&#29305;&#23450;&#30340;&#24086;&#23376;&#20851;&#32852;&#36215;&#26469;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#24050;&#32463;&#27010;&#36848;&#20102;&#26500;&#24314;&#22522;&#20110;Laravel&#30340;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#25152;&#38656;&#30340;&#22522;&#26412;&#36335;&#30001;&#25152;&#38656;&#30340;&#20869;&#23481;&#12290;&#26377;&#25928;&#30340;&#36335;&#30001;&#26159;&#21019;&#24314;&#30452;&#35266;&#12289;&#29992;&#25143;&#21451;&#22909;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#22522;&#30784;&#12290;Laravel&#22312;&#36825;&#26041;&#38754;&#34920;&#29616;&#20986;&#33394;&#65292;&#23427;&#25552;&#20379;&#20102;&#19968;&#31181;&#31616;&#27905;&#30340;&#36335;&#30001;&#36807;&#31243;&#65292;&#20351;&#24320;&#21457;&#20154;&#21592;&#33021;&#22815;&#33457;&#36739;&#23569;&#30340;&#26102;&#38388;&#25285;&#24515;HTTP&#35831;&#27714;&#30340;&#20855;&#20307;&#32454;&#33410;&#65292;&#32780;&#26356;&#22810;&#22320;&#20851;&#27880;&#20026;&#20182;&#20204;&#30340;&#24212;&#29992;&#26500;&#24314;&#20196;&#20154;&#24778;&#21497;&#30340;&#21151;&#33021;&#12290;<\/p><p>&#35831;&#35760;&#20303;&#65292;&#25511;&#21046;&#22120;&#26041;&#27861;&#30340;&#23454;&#38469;&#23454;&#29616;&#20197;&#21450;&#36825;&#20123;&#36335;&#30001;&#23545;&#24212;&#30340;&#35270;&#22270;&#20063;&#26159;&#24212;&#29992;&#31243;&#24207;&#25104;&#21151;&#30340;&#20851;&#38190;&#22240;&#32032;&#12290;&#20511;&#21161;Laravel&#30340;&#20248;&#38597;&#27169;&#24335;&#12289;&#22362;&#23454;&#26550;&#26500;&#21644;&#24378;&#22823;&#30340;ORM&#65288;Eloquent&#65289;&#65292;&#24744;&#30340;&#19979;&#19968;&#20010;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#21487;&#33021;&#21482;&#38656;&#35201;&#20960;&#19979;&#38190;&#30424;&#23601;&#33021;&#23454;&#29616;&#65281;<\/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 &#26694;&#26550;&#65292;&#29992;&#20110;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#21644; web &#24320;&#21457;&#39033;&#30446;&#12290;&#35201;&#20026;&#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#23450;&#20041;&#36335;&#30001;&#65292;&#25105;&#20204;&#39318;&#20808;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Laravel &#39033;&#30446;&#65292;&#24182;&#23433;&#35013;&#24517;&#35201;&#30340;&#20381;&#36182;&#12290;<\/p>\n<ol>\n<li>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#24050;&#32463;&#23433;&#35013;&#20102; Composer&#65292;&#36825;&#26159;&#19968;&#20010;&#29992;&#20110;&#31649;&#29702;&#39033;&#30446;&#20381;&#36182;&#30340;&#24037;&#20855;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#25171;&#24320;&#21629;&#20196;&#34892;&#30028;&#38754;&#65288;Terminal &#25110;&#32773; Command Prompt&#65289;&#65292;&#28982;&#21518;&#23548;&#33322;&#21040;&#24744;&#30340; Laravel &#39033;&#30446;&#30340;&#30446;&#24405;&#65306;<\/p>\n<pre><code>cd &lt;your_project_directory&gt;<\/code><\/pre>\n<\/li>\n<li>\n<p>&#20351;&#29992; Composer &#26469;&#21021;&#22987;&#21270;&#39033;&#30446;&#24182;&#23433;&#35013;&#25152;&#38656;&#30340;&#20381;&#36182;&#24211;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer create-project --prefer-dist laravel\/laravel social_media_app<\/code><\/pre>\n<\/li>\n<li>\n<p>&#36827;&#20837;&#26032;&#21019;&#24314;&#30340;&#39033;&#30446;&#30446;&#24405;&#65306;<\/p>\n<pre><code>cd social_media_app<\/code><\/pre>\n<\/li>\n<li>\n<p>&#23433;&#35013;&#19968;&#20123;&#39069;&#22806;&#30340;&#20381;&#36182;&#39033;&#26469;&#22788;&#29702;&#31038;&#20132;&#23186;&#20307;&#30456;&#20851;&#30340;&#21151;&#33021;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require laracasts\/socialite-laravel<\/code><\/pre>\n<\/li>\n<li>\n<p>&#25509;&#19979;&#26469;&#65292;&#25105;&#20204;&#23558;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>SocialMediaController<\/code> &#30340;&#25511;&#21046;&#22120;&#25991;&#20214;&#65292;&#24182;&#22312;&#27492;&#25511;&#21046;&#22120;&#20013;&#23450;&#20041;&#36335;&#30001;&#12290;&#20026;&#20102;&#23454;&#29616;&#36825;&#20010;&#30446;&#26631;&#65292;&#25105;&#20204;&#38656;&#35201;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<p>&#22312; <code>routes\/web.php<\/code> &#25991;&#20214;&#20013;&#65306;<\/p>\n<pre><code class=\"language-php\">\n&lt;?php<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>use IlluminateSupportFacadesRoute;<\/p>\n<p>Route::get(&#8216;\/social-media&#8217;, function () {\nreturn view(&#8216;social_media&#8217;);\n})-&gt;name(&#8216;social_media&#8217;);<\/p>\n<pre><code>&#36825;&#23558;&#21019;&#24314;&#19968;&#20010;&#40664;&#35748;&#30340; URL `\/social-media`&#65292;&#24403;&#29992;&#25143;&#35775;&#38382;&#26102;&#20250;&#26174;&#31034;&#19968;&#20010;&#35270;&#22270;&#12290;\n\n7. &#21019;&#24314;&#19968;&#20010;&#21517;&#20026; `SocialMediaController` &#30340;&#25511;&#21046;&#22120;&#25991;&#20214;&#65292;&#35813;&#25991;&#20214;&#20301;&#20110; `app\/Http\/Controllers` &#30446;&#24405;&#19979;&#65306;\n```php\n&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse Socialite;\n\nclass SocialMediaController extends Controller\n{\n    public function redirectToProvider($provider)\n    {\n        $provider = app($provider);\n        return $provider-&gt;redirect();\n    }\n\n    public function handleProviderCallback($provider)\n    {\n        $socialUser = Socialite::driver($provider)-&gt;stateless()-&gt;user();\n\n        \/\/ &#20551;&#35774;&#24744;&#26377;&#19968;&#20010;&#26041;&#27861;&#26469;&#39564;&#35777;&#29992;&#25143;\n        if ($socialUser) {\n            \/\/ &#27880;&#20876;&#29992;&#25143;&#25110;&#26356;&#26032;&#29616;&#26377;&#29992;&#25143;&#30340;&#25968;&#25454;\n            $user = User::create([\n                'username' =&gt; $socialUser-&gt;username,\n                'email' =&gt; $socialUser-&gt;email,\n                'password' =&gt; bcrypt('secret'),\n            ]);\n\n            return redirect('\/');\n        } else {\n            return back()-&gt;withErrors(['error' =&gt; trans('auth.invalid_credentials')]);\n        }\n    }\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992; Laravel &#30340; <code>RedirectToProvider<\/code> &#21644; <code>handleProviderCallback<\/code> &#26041;&#27861;&#26469;&#36830;&#25509; Laravel &#21644;&#31532;&#19977;&#26041;&#26381;&#21153;&#65288;&#22914; Facebook&#12289;Twitter &#31561;&#65289;&#12290;<\/p>\n<p>&#20363;&#22914;&#65292;&#22914;&#26524;&#24744;&#24819;&#35201;&#36890;&#36807; Facebook &#36134;&#25143;&#30331;&#24405;&#65292;&#35831;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p>\n<ul>\n<li>&#22312; <code>config\/auth.php<\/code> &#20013;&#28155;&#21152;&#20197;&#19979;&#37197;&#32622;&#20197;&#21551;&#29992; Facebook &#30331;&#24405;&#65306;\n<pre><code class=\"language-php\">'mixins' =&gt; [\n'socialite.providers.facebook' =&gt; [\n    'login_url' =&gt; '\/social-media\/login\/facebook',\n    'logout_url' =&gt; '\/social-media\/logout\/facebook',\n    'callback_url' =&gt; '\/social-media\/callback\/facebook',\n],\n],<\/code><\/pre><\/li>\n<li>&#22312; <code>routes\/web.php<\/code> &#20013;&#28155;&#21152;&#20197;&#19979;&#36335;&#30001;&#20197;&#36830;&#25509; Facebook&#65306;\n<pre><code class=\"language-php\">Route::post('\/social-media\/login\/facebook', 'SocialMediaController@redirectToProvider')-&gt;name('social_media.login.facebook');\nRoute::get('\/social-media\/callback\/facebook', 'SocialMediaController@handleProviderCallback')-&gt;name('social_media.handle_provider_callback.facebook');<\/code><\/pre><\/li>\n<li>&#26368;&#21518;&#65292;&#22312; <code>SocialMediaController<\/code> &#20013;&#23436;&#25104;&#29992;&#25143;&#27880;&#20876;&#36923;&#36753;&#65306;<\/li>\n<\/ul>\n<pre><code class=\"language-php\">public function register(Request $request, Socialite $provider)\n{\n    $user = $this-&gt;registerWithFacebook($request, $provider);\n\n    if ($user instanceof User) {\n        auth()-&gt;loginUsingId($user-&gt;id);\n\n        return redirect('\/');\n    } else {\n        return back()-&gt;withErrors(['error' =&gt; trans('auth.failed')]);\n    }\n}<\/code><\/pre>\n<p>&#20197;&#19978;&#23601;&#26159;&#22312; Laravel &#31038;&#20132;&#23186;&#20307;&#24179;&#21488;&#19978;&#35774;&#32622;&#36335;&#30001;&#30340;&#22522;&#26412;&#27493;&#39588;&#12290;&#26681;&#25454;&#23454;&#38469;&#38656;&#27714;&#65292;&#21487;&#20197;&#36827;&#19968;&#27493;&#25193;&#23637;&#27492;&#26694;&#26550;&#20197;&#25903;&#25345;&#26356;&#22810;&#21151;&#33021;&#65292;&#27604;&#22914;&#21457;&#24067;&#12289;&#35780;&#35770;&#12289;&#28857;&#36190;&#31561;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22909;&#30340;&#65292;&#35753;&#25105;&#20204;&#26469;&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;Laravel&#24212;&#038;#299..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-1024","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\/1024","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=1024"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1024"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1024"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}