{"id":786,"date":"2025-06-11T23:38:49","date_gmt":"2025-06-11T15:38:49","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/786.html"},"modified":"2025-06-11T23:38:49","modified_gmt":"2025-06-11T15:38:49","slug":"%e5%a6%82%e4%bd%95%e4%bb%85%e5%90%91%e5%b7%b2%e7%99%bb%e5%bd%95%e7%94%a8%e6%88%b7%e6%98%be%e7%a4%ba%e8%a7%86%e5%9b%be","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/786.html","title":{"rendered":"\u5982\u4f55\u4ec5\u5411\u5df2\u767b\u5f55\u7528\u6237\u663e\u793a\u89c6\u56fe"},"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>&#35201;&#20165;&#21521;&#24050;&#30331;&#24405;&#29992;&#25143;&#26174;&#31034;&#35270;&#22270;&#65292;&#36890;&#24120;&#38656;&#35201;&#20351;&#29992;&#26381;&#21153;&#22120;&#31471;&#32534;&#31243;&#35821;&#35328;&#65288;&#22914;Python&#12289;Java&#31561;&#65289;&#26469;&#26816;&#26597;&#29992;&#25143;&#30340;&#30331;&#24405;&#29366;&#24577;&#65292;&#24182;&#26681;&#25454;&#35813;&#29366;&#24577;&#20915;&#23450;&#26159;&#21542;&#26174;&#31034;&#35270;&#22270;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65292;&#20351;&#29992;Python&#21644;Flask&#26694;&#26550;&#26469;&#23454;&#29616;&#36825;&#19968;&#21151;&#33021;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;Flask&#65306;<\/p>\n<pre><code class=\"language-bash\">pip install Flask<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Flask&#24212;&#29992;&#65292;&#24182;&#28155;&#21152;&#19968;&#20010;&#36335;&#30001;&#26469;&#22788;&#29702;&#30331;&#24405;&#36923;&#36753;&#12290;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026;<code>login.py<\/code>&#30340;&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-python\">from flask import Flask, render_template, request, redirect, url_for\n\napp = Flask(__name__)\n\n# &#27169;&#25311;&#30331;&#24405;&#29366;&#24577;\nlogged_in = False\n\n@app.route('\/')\ndef index():\n    # &#26816;&#26597;&#29992;&#25143;&#26159;&#21542;&#24050;&#30331;&#24405;\n    if logged_in:\n        return render_template('index.html')\n    else:\n        return redirect(url_for('login'))\n\n@app.route('\/login', methods=['GET', 'POST'])\ndef login():\n    global logged_in\n\n    if request.method == 'POST':\n        username = request.form['username']\n        password = request.form['password']\n\n        # &#36825;&#37324;&#21487;&#20197;&#28155;&#21152;&#23454;&#38469;&#30340;&#30331;&#24405;&#39564;&#35777;&#36923;&#36753;\n\n        # &#20551;&#35774;&#29992;&#25143;&#21517;&#20026;\"admin\"&#19988;&#23494;&#30721;&#20026;\"123\"\n        if username == \"admin\" and password == \"123\":\n            logged_in = True\n            return redirect(url_for('index'))\n        else:\n            return \"Invalid credentials. Please try again.\"\n\n    return render_template('login.html')\n\nif __name__ == '__main__':\n    app.run(debug=True)<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#21019;&#24314;&#20004;&#20010;HTML&#27169;&#26495;&#65306;<code>templates\/index.html<\/code>&#21644;<code>templates\/login.html<\/code>&#12290;<\/p>\n<p><strong>templates\/index.html:<\/strong><\/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;title&gt;Welcome&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Welcome to the Dashboard!&lt;\/h1&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p><strong>templates\/login.html:<\/strong><\/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;title&gt;Login&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Login&lt;\/h1&gt;\n    &lt;form method=\"post\"&gt;\n        &lt;label for=\"username\"&gt;Username:&lt;\/label&gt;\n        &lt;input type=\"text\" id=\"username\" name=\"username\"&gt;&lt;br&gt;&lt;br&gt;\n        &lt;label for=\"password\"&gt;Password:&lt;\/label&gt;\n        &lt;input type=\"password\" id=\"password\" name=\"password\"&gt;&lt;br&gt;&lt;br&gt;\n        &lt;button type=\"submit\"&gt;Login&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#24403;&#29992;&#25143;&#35775;&#38382;&#26681;&#36335;&#24452;&#26102;&#65292;&#22914;&#26524;<code>logged_in<\/code>&#21464;&#37327;&#20026;<code>True<\/code>&#65292;&#21017;&#26174;&#31034;<code>index.html<\/code>&#39029;&#38754;&#65307;&#21542;&#21017;&#65292;&#37325;&#23450;&#21521;&#21040;&#30331;&#24405;&#39029;&#38754;&#12290;&#29992;&#25143;&#21487;&#20197;&#36890;&#36807;&#34920;&#21333;&#25552;&#20132;&#29992;&#25143;&#21517;&#21644;&#23494;&#30721;&#36827;&#34892;&#30331;&#24405;&#12290;<\/p>\n<p>&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#20320;&#21487;&#20197;&#30830;&#20445;&#21482;&#26377;&#24050;&#30331;&#24405;&#30340;&#29992;&#25143;&#25165;&#33021;&#30475;&#21040;&#25351;&#23450;&#30340;&#35270;&#22270;&#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 &#25552;&#20379;&#20102;&#19968;&#20010;&#24378;&#22823;&#30340;&#27169;&#26495;&#24341;&#25806;&#65292;&#21483;&#20570; Blade&#65292;&#20351;&#24471;&#24320;&#21457;&#20154;&#21592;&#21487;&#20197;&#20197;&#38750;&#24120;&#30452;&#35266;&#30340;&#26041;&#24335;&#32534;&#20889;&#35270;&#22270;&#12290;&#28982;&#32780;&#65292;&#26377;&#26102;&#24320;&#21457;&#32773;&#38656;&#35201;&#38480;&#21046;&#26576;&#20123;&#35270;&#22270;&#65292;&#21482;&#35753;&#24050;&#35748;&#35777;&#30340;&#29992;&#25143;&#35775;&#38382;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#35814;&#32454;&#20171;&#32461;&#22914;&#20309;&#20351;&#29992; Laravel Blade &#26174;&#31034;&#20165;&#23545;&#30331;&#24405;&#29992;&#25143;&#21487;&#35265;&#30340;&#35270;&#22270;&#12290;<\/p><p>&#21069;&#32622;&#26465;&#20214;<\/p><p>&#29702;&#35299;Laravel&#30340;&#35748;&#35777;&#26426;&#21046;<\/p><p>&#22522;&#26412;&#30340;Laravel&#21644;Blade&#27169;&#26495;&#30693;&#35782;<\/p><p>&#19968;&#20010;&#24037;&#20316;&#20013;&#30340;Laravel&#23433;&#35013;<\/p><h2>&#22312;Blade&#27169;&#26495;&#24341;&#25806;&#20013;&#65292;@auth &#21644; @guest &#26159;&#20004;&#20010;&#38750;&#24120;&#26377;&#29992;&#30340;&#25351;&#20196;&#65292;&#29992;&#20110;&#26681;&#25454;&#29992;&#25143;&#26159;&#21542;&#30331;&#24405;&#26469;&#21160;&#24577;&#22320;&#28210;&#26579;&#19981;&#21516;&#30340;&#37096;&#20998;&#25110;&#20803;&#32032;&#12290;\n\n@auth&#65306;&#24403;&#29992;&#25143;&#26410;&#30331;&#24405;&#26102;&#65292;&#36825;&#20010;&#25351;&#20196;&#20250;&#26174;&#31034;&#19968;&#20010;&#29305;&#23450;&#30340;HTML&#29255;&#27573;&#25110;&#32773;&#25191;&#34892;&#29305;&#23450;&#30340;&#25805;&#20316;&#12290;&#36890;&#24120;&#29992;&#20110;&#26174;&#31034;&#30331;&#24405;&#39029;&#38754;&#12289;&#23548;&#33322;&#38142;&#25509;&#31561;&#12290;\n@if (!Auth::check())\n&lt;div class=&#8221;login-box&#8221;&gt;\n Please login to access this page.\n&lt;\/div&gt;\n@endif\n\n@guest&#65306;&#24403;&#29992;&#25143;&#24050;&#30331;&#24405;&#20294;&#19981;&#26159;&#31649;&#29702;&#21592;&#26102;&#65292;&#36825;&#20010;&#25351;&#20196;&#21516;&#26679;&#20250;&#26174;&#31034;&#19968;&#20010;&#29305;&#23450;&#30340;HTML&#29255;&#27573;&#25110;&#32773;&#25191;&#34892;&#29305;&#23450;&#30340;&#25805;&#20316;&#12290;&#20027;&#35201;&#29992;&#20110;&#31649;&#29702;&#21518;&#21488;&#30028;&#38754;&#65292;&#23637;&#31034;&#21482;&#26377;&#31649;&#29702;&#21592;&#25165;&#33021;&#35775;&#38382;&#30340;&#20869;&#23481;&#12290;\n@if (Auth::check() &amp;&amp; !Auth::user()-&gt;is_admin)\n&lt;div class=&#8221;admin-panel&#8221;&gt;\n Only admin can view this panel.\n&lt;\/div&gt;\n@endif\n\n&#36825;&#20004;&#20010;&#25351;&#20196;&#32467;&#21512;&#20351;&#29992;&#21487;&#20197;&#28789;&#27963;&#22320;&#25511;&#21046;&#19981;&#21516;&#29992;&#25143;&#30340;&#35775;&#38382;&#26435;&#38480;&#21644;&#20307;&#39564;&#12290;<\/h2><p>Blade &#25552;&#20379;&#20102;&#20004;&#31181;&#25351;&#20196;&#12290;<code>@auth<\/code>and &#26159;&ldquo;&#21644;&rdquo;&#30340;&#24847;&#24605;&#65292;&#36890;&#24120;&#29992;&#20110;&#36830;&#25509;&#20004;&#20010;&#35789;&#25110;&#30701;&#35821;&#12290;<code>@guest<\/code>&#20026;&#20102;&#24555;&#36895;&#26816;&#26597;&#29992;&#25143;&#26159;&#21542;&#24050;&#35748;&#35777;&#65292;&#36825;&#37324;&#26159;&#26368;&#31616;&#21333;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>&lt;!-- If the user is authenticated --&gt;\n@auth\n    &lt;p&gt;Welcome back, {{ auth()-&gt;user()-&gt;name }}!&lt;\/p&gt;\n@endauth\n\n&lt;!-- If the user is a guest --&gt;\n@guest\n    &lt;p&gt;Please log in to see your profile.&lt;\/p&gt;\n@endguest\n<\/code><\/pre><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#26080;&#27861;&#29702;&#35299;&#24744;&#35201;&#34920;&#36798;&#30340;&#20869;&#23481;&#12290;&#22914;&#26524;&#24744;&#26377;&#20854;&#20182;&#38382;&#39064;&#25110;&#38656;&#35201;&#24110;&#21161;&#65292;&#35831;&#21578;&#35785;&#25105;&#65292;&#25105;&#20250;&#23613;&#21147;&#25552;&#20379;&#25903;&#25345;&#21644;&#35299;&#31572;&#12290;<code>@auth<\/code>&#25351;&#20196;&#26816;&#26597;&#26159;&#21542;&#26377;&#24050;&#30331;&#24405;&#30340;&#29992;&#25143;&#65292;&#22914;&#26524;&#26377;&#65292;&#21017;&#20195;&#30721;&#22359;&#20869;&#25191;&#34892;&#12290;<code>@auth<\/code>and&#20063;&#26159;&#65292;&#25105;&#20204;&#32487;&#32493;&#35752;&#35770;&#21543;&#12290;<code>@endauth<\/code>&#23558;&#20250;&#34987;&#22788;&#29702;&#12290;&#30456;&#21453;&#22320;&#65292;<code>@guest<\/code>&#26410;&#35748;&#35777;&#30340;&#35775;&#23458;&#26816;&#26597;&#12290;<\/p><h2>&#20351;&#29992;&#35748;&#35777;&#20013;&#38388;&#20214;<\/h2><p>&#20013;&#38388;&#20214;&#26159;&#19968;&#31181;&#24456;&#22909;&#30340;&#36807;&#28388;HTTP&#35831;&#27714;&#36827;&#20837;&#24212;&#29992;&#31243;&#24207;&#30340;&#26041;&#24335;&#12290;Laravel&#33258;&#24102;&#20102;&#19968;&#20123;&#20013;&#38388;&#20214;&#26469;&#22788;&#29702;&#24120;&#35265;&#30340;&#20219;&#21153;&#65292;&#27604;&#22914;&#35748;&#35777;&#12289;&#25480;&#26435;&#31561;&#12290;<code>auth<\/code>&#20013;&#38388;&#20214;&#21487;&#20197;&#22312;&#36335;&#30001;&#20013;&#24212;&#29992;&#65292;&#30830;&#20445;&#21482;&#26377;&#35748;&#35777;&#29992;&#25143;&#25165;&#33021;&#35775;&#38382;&#19982;&#20854;&#20851;&#32852;&#30340;&#35270;&#22270;&#12290;&#20197;&#19979;&#26159;&#20351;&#29992;&#20013;&#38388;&#20214;&#22312;&#36335;&#30001;&#23450;&#20041;&#20013;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>Route::get('\/profile', function () {\n    return view('profile');\n})-&gt;middleware('auth');\n<\/code><\/pre><p>&#29616;&#22312;&#65292;&#24403;&#19968;&#20010;&#26410;&#35748;&#35777;&#30340;&#29992;&#25143;&#35797;&#22270;&#35775;&#38382;&#26102;&#65292;<code>\/profile<\/code>&#36335;&#30001;&#23558;&#20250;&#37325;&#23450;&#21521;&#20182;&#20204;&#21040;&#30331;&#24405;&#39029;&#38754;&#12290;<\/p><h2>&#22312;&#25511;&#21046;&#22120;&#20013;&#36827;&#34892;&#36523;&#20221;&#39564;&#35777;&#25805;&#20316;&#12290;<\/h2><p>&#26377;&#26102;&#20505;&#65292;&#24744;&#21487;&#33021;&#24076;&#26395;&#22312;&#25511;&#21046;&#22120;&#20013;&#26816;&#26597;&#29992;&#25143;&#26159;&#21542;&#24050;&#35748;&#35777;&#12290;&#20197;&#19979;&#26159;&#24744;&#21487;&#20197;&#36825;&#26679;&#20570;&#30340;&#19968;&#20123;&#26041;&#27861;&#65306;<\/p><pre><code>public function showProfile()\n{\n    if (auth()-&gt;check()) {\n        return view('profile', ['user' =&gt; auth()-&gt;user()]);\n    } else {\n        return redirect('login');\n    }\n}\n<\/code><\/pre><p>&#36825;&#31181;&#26041;&#27861;&#20351;&#29992;&#20102;&#12290;<code>auth()<\/code>facade&#8217;s &#26159;&#19968;&#20010;&#21517;&#35789;&#65292;&#24847;&#20026;&ldquo;&#38754;&#32617;&rdquo;&#65292;&ldquo;&#36974;&#34109;&#29289;&rdquo;&#12290;<code>check()<\/code>&#26041;&#27861;&#26469;&#26816;&#26597;&#24403;&#21069;&#35775;&#23458;&#26159;&#21542;&#24050;&#35748;&#35777;&#12290;<\/p><h2>&#32467;&#21512;&#25216;&#26415;&#20197;&#23454;&#29616;&#26356;&#31934;&#32454;&#30340;&#25511;&#21046;<\/h2><p>&#20320;&#21487;&#20197;&#32467;&#21512;&#20013;&#38388;&#20214;&#38480;&#21046;&#19982;&#23884;&#20837;&#24335; Blade &#25351;&#20196;&#26469;&#22312;&#35270;&#22270;&#20013;&#36827;&#34892;&#26356;&#22810;&#25511;&#21046;&#65306;<\/p><pre><code>@auth\n    &lt;!-- This section will only be shown to logged-in users --&gt;\n    @if(auth()-&gt;user()-&gt;isAdmin())\n        &lt;!-- Markup for admin-related content --&gt;\n    @else\n        &lt;!-- Markup for regular user content --&gt;\n    @endif\n@endauth\n<\/code><\/pre><p>&#36825;&#20801;&#35768;&#24744;&#26174;&#31034;&#26576;&#20123;&#35270;&#22270;&#30340;&#29305;&#23450;&#37096;&#20998;&#32473;&#25152;&#26377;&#24050;&#35748;&#35777;&#29992;&#25143;&#65292;&#21516;&#26102;&#20165;&#21521;&#20855;&#26377;&#29305;&#23450;&#31867;&#22411;&#24050;&#35748;&#35777;&#29992;&#25143;&#30340;&#20854;&#20182;&#37096;&#20998;&#26174;&#31034;&#12290;<\/p><h2>&#21019;&#24314;&#33258;&#23450;&#20041;Blade&#25351;&#20196;&#20197;&#22788;&#29702;&#29992;&#25143;&#35282;&#33394;<\/h2><p>&#22914;&#26524;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#20013;&#26377;&#22810;&#20010;&#29992;&#25143;&#35282;&#33394;&#65292;&#21487;&#33021;&#38656;&#35201;&#21019;&#24314;&#33258;&#23450;&#20041;&#25351;&#20196;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#21019;&#24314;&#19968;&#20010;&#21482;&#23545;&#20855;&#26377;&ldquo;&#31649;&#29702;&#21592;&rdquo;&#35282;&#33394;&#30340;&#29992;&#25143;&#21487;&#35265;&#30340;&#33258;&#23450;&#20041;&#25351;&#20196;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>Blade::directive('admin', function () {\n    return \"\";\n});\n\nBlade::directive('endadmin', function () {\n    return \"\";\n});\n\n\/\/ Usage in your Blade file\n@admin\n    &lt;p&gt;This secret admin panel can only be seen by you!&lt;\/p&gt;\n@endadmin\n<\/code><\/pre><p>&#20320;&#38656;&#35201;&#25163;&#21160;&#22312;&#26381;&#21153;&#25552;&#20379;&#32773;&#20013;&#27880;&#20876;&#36825;&#20123;&#25351;&#20196;&#65292;&#36825;&#20801;&#35768;&#20195;&#30721;&#20043;&#38388;&#36827;&#34892;&#36890;&#20449;&#12290;<code>@admin<\/code>and &#36824;&#26377;<code>@endadmin<\/code>&#21482;&#26377;&#24403;&#29992;&#25143;&#24050;&#35748;&#35777;&#19988;&#25317;&#26377;&ldquo;&#31649;&#29702;&#21592;&rdquo;&#35282;&#33394;&#26102;&#65292;&#25165;&#20250;&#25191;&#34892;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>&#22312;&#26412;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#24050;&#32463;&#25506;&#32034;&#20102;&#36890;&#36807;Laravel Blade&#26174;&#31034;&#20165;&#30331;&#24405;&#29992;&#25143;&#35270;&#22270;&#30340;&#21508;&#31181;&#26041;&#27861;&#12290;&#20174;&#21407;&#29983;Blade&#25351;&#20196;&#24320;&#22987;&#12290;<code>@auth<\/code>and &#26159;&ldquo;&#24182;&#19988;&rdquo;&#30340;&#24847;&#24605;&#12290;<code>@guest<\/code>&#22312;&#25191;&#34892;&#25511;&#21046;&#22120;&#20013;&#30340;&#35282;&#33394;&#26816;&#26597;&#65292;&#29978;&#33267;&#21019;&#24314;&#33258;&#23450;&#20041;&#25351;&#20196;&#20197;&#23454;&#29616;&#26356;&#32454;&#33268;&#30340;&#25511;&#21046;&#26041;&#38754;&#36827;&#34892;&#20013;&#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>&#20026;&#20102;&#23454;&#29616;&#36825;&#20010;&#38656;&#27714;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;AngularJS&#30340;$location&#26381;&#21153;&#21644;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;&#36335;&#30001;&#36339;&#36716;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65306;<\/p>\n<ol>\n<li>&#39318;&#20808;&#65292;&#22312;&#20320;&#30340;&#32452;&#20214;&#25991;&#20214;&#65288;&#22914; <code>app.component.html<\/code> &#25110; <code>app.component.ts<\/code>&#65289;&#20013;&#65292;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>ngOnInit<\/code> &#30340;&#26041;&#27861;&#65292;&#24182;&#22312;&#36825;&#37324;&#28155;&#21152;&#36923;&#36753;&#26469;&#26816;&#26597;&#24403;&#21069;&#29992;&#25143;&#26159;&#21542;&#24050;&#32463;&#30331;&#24405;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-html\">&lt;router-outlet&gt;&lt;\/router-outlet&gt;<\/code><\/pre>\n<pre><code class=\"language-typescript\">import { Component } from '@angular\/core';\nimport { Router } from '@angular\/router';\n\n@Component({\n  selector: 'my-app',\n  template: `\n    &lt;div&gt;\n      &lt;h2&gt;Hello {{ username }}&lt;\/h2&gt;\n      &lt;button (click)=\"login()\"&gt;Login&lt;\/button&gt;\n      &lt;button (click)=\"logout()\"&gt;Logout&lt;\/button&gt;\n      &lt;router-outlet&gt;&lt;\/router-outlet&gt;\n    &lt;\/div&gt;\n  `,\n})\nexport class AppComponent {\n  constructor(private router: Router) {}\n\n  ngOnInit() {\n    if (!this.userIsLoggedIn()) {\n      this.router.navigate(['\/']);\n    }\n  }\n\n  login() {\n    \/\/ &#36825;&#37324;&#26159;&#22788;&#29702;&#29992;&#25143;&#30331;&#24405;&#30340;&#26041;&#27861;\n  }\n\n  logout() {\n    \/\/ &#36825;&#37324;&#26159;&#22788;&#29702;&#29992;&#25143;&#27880;&#38144;&#30340;&#26041;&#27861;\n  }\n\n  userIsLoggedIn(): boolean {\n    \/\/ &#36825;&#37324;&#26159;&#26816;&#26597;&#29992;&#25143;&#26159;&#21542;&#30331;&#24405;&#30340;&#26041;&#27861;\n  }\n}<\/code><\/pre>\n<ol start=\"2\">\n<li>&#28982;&#21518;&#65292;&#22312;&#20320;&#30340;&#26381;&#21153;&#25991;&#20214;&#65288;&#22914; <code>app.service.ts<\/code>&#65289;&#20013;&#65292;&#23450;&#20041;&#19968;&#20010;&#21517;&#20026; <code>UserService<\/code> &#30340;&#31867;&#65292;&#24182;&#22312;&#27492;&#31867;&#20013;&#28155;&#21152;&#19968;&#20010;&#21517;&#20026; <code>isUserLoggedIn<\/code> &#30340;&#26041;&#27861;&#65292;&#35813;&#26041;&#27861;&#29992;&#20110;&#36820;&#22238;&#19968;&#20010;&#24067;&#23572;&#20540;&#65292;&#34920;&#31034;&#24403;&#21069;&#29992;&#25143;&#26159;&#21542;&#30331;&#24405;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-typescript\">@Injectable()\nexport class UserService {\n  isUserLoggedIn = false;\n\n  setUserStatus(status: boolean) {\n    this.isUserLoggedIn = status;\n  }\n}\n\n\/\/ &#22312;&#20320;&#30340;&#32452;&#20214;&#25991;&#20214;&#20013;&#20351;&#29992; UserService &#31867;\nimport { UserService } from '.\/app.service';\n\nexport class AppComponent {\n  constructor(private userService: UserService) {}\n\n  ngOnInit() {\n    this.userService.setUserStatus(this.userIsLoggedIn());\n  }\n\n  userIsLoggedIn() {\n    return true; \/\/ &#31034;&#20363;&#25968;&#25454;&#65292;&#23454;&#38469;&#38656;&#35201;&#26681;&#25454;&#23454;&#38469;&#24773;&#20917;&#36827;&#34892;&#21028;&#26029;\n  }\n}<\/code><\/pre>\n<ol start=\"3\">\n<li>&#26368;&#21518;&#65292;&#22312;&#20320;&#30340;&#27169;&#26495;&#25991;&#20214;&#65288;&#22914; <code>app.component.html<\/code> &#25110; <code>app.component.ts<\/code>&#65289;&#20013;&#65292;&#23558; <code>ngOnInit<\/code> &#26041;&#27861;&#20013;&#30340;&#26465;&#20214;&#26367;&#25442;&#20026; <code>ngIf<\/code> &#26631;&#31614;&#65292;&#20197;&#20415;&#22312;&#29992;&#25143;&#30331;&#24405;&#26102;&#26174;&#31034;&#35270;&#22270;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-html\">&lt;router-outlet&gt;&lt;\/router-outlet&gt;\n\n&lt;div *ngIf=\"!userIsLoggedIn()\"&gt;\n  &lt;!-- &#29992;&#25143;&#26410;&#30331;&#24405;&#30340;&#20869;&#23481; --&gt;\n&lt;\/div&gt;\n\n&lt;div *ngIf=\"userIsLoggedIn()\"&gt;\n  &lt;!-- &#29992;&#25143;&#24050;&#30331;&#24405;&#30340;&#20869;&#23481; --&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#21482;&#26377;&#24403;&#29992;&#25143;&#24050;&#32463;&#30331;&#24405;&#26102;&#65292;&#25165;&#20250;&#26174;&#31034;&#23545;&#24212;&#30340;&#35270;&#22270;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#35201;&#20165;&#21521;&#24050;&#30331;&#24405;&#29992;&#25143;&#26174;&#31034;&#35270;&#22270;&#65292;&#36890;&#24120;&#38656;&#038;#35..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-786","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\/786","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=786"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=786"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=786"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}