{"id":937,"date":"2025-06-12T03:09:28","date_gmt":"2025-06-11T19:09:28","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/937.html"},"modified":"2025-06-12T03:09:28","modified_gmt":"2025-06-11T19:09:28","slug":"laravel-%e6%9f%a5%e8%af%a2%e6%9e%84%e5%bb%ba%e5%99%a8%e4%b8%ad%e7%9a%84%e5%85%b1%e4%ba%ab%e9%94%81%e5%ae%9a%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\/937.html","title":{"rendered":"Laravel \u67e5\u8be2\u6784\u5efa\u5668\u4e2d\u7684\u5171\u4eab\u9501\u5b9a\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>&#26631;&#39064;&#65306;Laravel &#26597;&#35810;&#26500;&#24314;&#22120;&#20013;&#30340;&#20849;&#20139;&#38145;&#23450;&#65306;&#23454;&#29992;&#25351;&#21335;<\/p>\n<p>&#22312; Laravel &#20013;&#65292;&#26597;&#35810;&#26500;&#24314;&#22120;&#26159;&#29992;&#20110;&#26500;&#24314;&#25968;&#25454;&#24211;&#26597;&#35810;&#30340;&#24037;&#20855;&#12290;&#28982;&#32780;&#65292;&#26377;&#26102;&#25105;&#20204;&#38656;&#35201;&#22312;&#21516;&#19968;&#26597;&#35810;&#20013;&#20351;&#29992;&#22810;&#20010;&#38145;&#26469;&#30830;&#20445;&#25968;&#25454;&#30340;&#19968;&#33268;&#24615;&#12290;Laravel &#25552;&#20379;&#20102;&#22810;&#31181;&#26041;&#27861;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#65292;&#20854;&#20013;&#26368;&#24120;&#29992;&#30340;&#26159;&#20351;&#29992; <code>withLock<\/code> &#26041;&#27861;&#12290;<\/p>\n<h3>&#20160;&#20040;&#26159;&#20849;&#20139;&#38145;&#23450;&#65311;<\/h3>\n<p>&#20849;&#20139;&#38145;&#23450;&#65288;Shared Lock&#65289;&#26159;&#19968;&#31181;&#35835;&#21462;&#38145;&#65292;&#20801;&#35768;&#22810;&#20010;&#20107;&#21153;&#21516;&#26102;&#35775;&#38382;&#34920;&#20013;&#30340;&#25968;&#25454;&#65292;&#20294;&#19981;&#20250;&#38459;&#27490;&#20854;&#20182;&#20107;&#21153;&#36827;&#34892;&#26356;&#26032;&#25805;&#20316;&#12290;&#36825;&#36890;&#24120;&#29992;&#20110;&#35835;&#23494;&#38598;&#22411;&#22330;&#26223;&#65292;&#22914;&#32531;&#23384;&#12289;&#26085;&#24535;&#35760;&#24405;&#31561;&#12290;<\/p>\n<h3>&#22914;&#20309;&#22312; Laravel &#20013;&#20351;&#29992;&#20849;&#20139;&#38145;&#23450;&#65311;<\/h3>\n<ol>\n<li>\n<p><strong>&#21551;&#29992;&#20849;&#20139;&#38145;&#23450;<\/strong>&#65306;\n&#22312;&#20320;&#30340;&#26597;&#35810;&#20013;&#20351;&#29992; <code>withLock<\/code> &#26041;&#27861;&#65292;&#24182;&#25351;&#23450;&#38145;&#31867;&#22411;&#20026; <code>Shared<\/code>&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#31034;&#20363;&#20195;&#30721;<\/strong>&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesDB;\n\n\/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; 'users' &#30340;&#34920;\n$users = DB::table('users')\n    -&gt;select('id', 'name')\n    -&gt;where('status', 'active')\n    -&gt;withLock(DB::Locks::SHARED)\n    -&gt;get();\n\nforeach ($users as $user) {\n    echo \"User ID: {$user-&gt;id}, Name: {$user-&gt;name}n\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#20351;&#29992; <code>withLock<\/code> &#26041;&#27861;&#24182;&#20256;&#20837; <code>DB::Locks::SHARED<\/code> &#21442;&#25968;&#26469;&#34920;&#31034;&#20351;&#29992;&#20849;&#20139;&#38145;&#12290;&#36825;&#26679;&#65292;&#26597;&#35810;&#23558;&#36820;&#22238;&#25152;&#26377;&#29366;&#24577;&#20026; <code>active<\/code> &#30340;&#29992;&#25143;&#65292;&#24182;&#19988;&#36825;&#20123;&#29992;&#25143;&#30340;&#35835;&#21462;&#25805;&#20316;&#19981;&#20250;&#38459;&#22622;&#20854;&#20182;&#20107;&#21153;&#36827;&#34892;&#26356;&#26032;&#25805;&#20316;&#12290;<\/p>\n<h3>&#27880;&#24847;&#20107;&#39033;<\/h3>\n<ul>\n<li><strong>&#24615;&#33021;&#24433;&#21709;<\/strong>&#65306;&#20849;&#20139;&#38145;&#21487;&#33021;&#20250;&#23548;&#33268;&#26356;&#38271;&#30340;&#26597;&#35810;&#25191;&#34892;&#26102;&#38388;&#65292;&#22240;&#20026;&#22810;&#20010;&#20107;&#21153;&#38656;&#35201;&#31561;&#24453;&#20849;&#20139;&#38145;&#37322;&#25918;&#12290;<\/li>\n<li><strong>&#24182;&#21457;&#25511;&#21046;<\/strong>&#65306;&#20849;&#20139;&#38145;&#20027;&#35201;&#29992;&#20110;&#35835;&#25805;&#20316;&#65292;&#19981;&#36866;&#29992;&#20110;&#38656;&#35201;&#36827;&#34892;&#26356;&#26032;&#25805;&#20316;&#30340;&#22330;&#26223;&#12290;<\/li>\n<li><strong>&#20107;&#21153;&#38548;&#31163;&#32423;&#21035;<\/strong>&#65306;&#30830;&#20445;&#20320;&#30340;&#20107;&#21153;&#38548;&#31163;&#32423;&#21035;&#35774;&#32622;&#27491;&#30830;&#65292;&#20197;&#36991;&#20813;&#19982;&#20854;&#20182;&#20107;&#21153;&#20914;&#31361;&#12290;<\/li>\n<\/ul>\n<p>&#36890;&#36807;&#21512;&#29702;&#20351;&#29992;&#20849;&#20139;&#38145;&#23450;&#65292;&#20320;&#21487;&#20197;&#26377;&#25928;&#22320;&#25552;&#39640;&#24212;&#29992;&#31243;&#24207;&#30340;&#24615;&#33021;&#21644;&#19968;&#33268;&#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>&#22312;&#22788;&#29702;&#32593;&#39029;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#25968;&#25454;&#24211;&#26102;&#65292;&#29305;&#21035;&#26159;&#22312;&#38656;&#35201;&#24212;&#23545;&#39640;&#24182;&#21457;&#35775;&#38382;&#30340;&#24773;&#20917;&#19979;&#65292;&#31649;&#29702;&#25968;&#25454;&#24211;&#38145;&#23450;&#21464;&#24471;&#33267;&#20851;&#37325;&#35201;&#20197;&#38450;&#27490;&#25968;&#25454;&#25439;&#22351;&#24182;&#20445;&#25345;&#24212;&#29992;&#30340;&#23436;&#25972;&#24615;&#12290;Laravel &#26159;&#19968;&#20010;&#24378;&#22823;&#30340; PHP &#26694;&#26550;&#65292;&#23427;&#25552;&#20379;&#20102;&#26597;&#35810;&#26500;&#24314;&#22120;&#65292;&#21487;&#20197;&#29992;&#26469;&#25511;&#21046;&#23545;&#25968;&#25454;&#24211;&#34892;&#30340;&#38145;&#12290;&#22312;&#36825;&#31687;&#25991;&#31456;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034; Laravel &#26597;&#35810;&#26500;&#24314;&#22120;&#20013;&#30340;&#20849;&#20139;&#38145;&#23450;&#27010;&#24565;&#65292;&#24182;&#25552;&#20379;&#19968;&#20123;&#23454;&#29992;&#30340;&#20363;&#23376;&#21644;&#26368;&#20339;&#23454;&#36341;&#12290;<\/p><h2>Shared locking means that a transaction can read the data, but not modify it. Only one transaction at a time can hold the lock on the shared table.<\/h2><p>&#20849;&#20139;&#38145;&#65292;&#26377;&#26102;&#20063;&#34987;&#31216;&#20026;&ldquo;&#35835;&#38145;&rdquo;&#65292;&#26159;&#19968;&#31181;&#20801;&#35768;&#22810;&#20010;&#20107;&#21153;&#24182;&#21457;&#22320;&#35835;&#21462;&#25968;&#25454;&#24211;&#34892;&#32780;&#38450;&#27490;&#20219;&#20309;&#20107;&#21153;&#23545;&#35813;&#34892;&#36827;&#34892;&#20889;&#25805;&#20316;&#30340;&#38145;&#23450;&#31867;&#22411;&#12290;&#36825;&#31181;&#26426;&#21046;&#22312;&#30830;&#20445;&#25968;&#25454;&#22312;&#34987;&#35835;&#21462;&#26102;&#19981;&#20250;&#34987;&#20462;&#25913;&#26041;&#38754;&#33267;&#20851;&#37325;&#35201;&#65292;&#36825;&#23545;&#20110;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#19968;&#33268;&#24615;&#38750;&#24120;&#37325;&#35201;&#12290;<\/p><h2>&#20849;&#20139;&#38145;&#30340;&#22522;&#26412;&#20351;&#29992;&#26041;&#27861;&#12290;<\/h2><p>&#22312;Laravel&#30340;&#26597;&#35810;&#26500;&#24314;&#22120;&#20013;&#65292;&#20849;&#20139;&#38145;&#23450;&#30340;&#25805;&#20316;&#38750;&#24120;&#31616;&#21333;&#12290;&#20320;&#21482;&#38656;&#38142;&#24335;&#35843;&#29992;&#21363;&#21487;&#12290;<code>sharedLock()<\/code>&#20026;&#20102;&#26356;&#22909;&#22320;&#24110;&#21161;&#24744;&#65292;&#35831;&#25552;&#20379;&#26356;&#22810;&#30340;&#20449;&#24687;&#25110;&#20855;&#20307;&#38382;&#39064;&#65292;&#20197;&#20415;&#25105;&#33021;&#32473;&#20986;&#26356;&#20934;&#30830;&#30340;&#25351;&#23548;&#21644;&#24314;&#35758;&#12290;<\/p><pre><code>$users = DB::table('users')\n            -&gt;where('votes', '&gt;', '100')\n            -&gt;sharedLock()\n            -&gt;get();\n<\/code><\/pre><p>&#36825;&#27573;&#20195;&#30721;&#29255;&#27573;&#23558;&#26816;&#32034;&#25152;&#26377;&#25317;&#26377;&#36229;&#36807;100&#31080;&#30340;&#29992;&#25143;&#65292;&#24182;&#23545;&#30456;&#24212;&#30340;&#34892;&#26045;&#21152;&#20849;&#20139;&#38145;&#12290;<code>users<\/code>&#34920;&#12290;&#20854;&#20182;&#25968;&#25454;&#24211;&#20107;&#21153;&#21487;&#33021;&#35835;&#21462;&#36825;&#20123;&#34892;&#65292;&#20294;&#22312;&#24744;&#30340;&#38145;&#37322;&#25918;&#20043;&#21069;&#26080;&#27861;&#26356;&#26032;&#25110;&#21024;&#38500;&#23427;&#20204;&#12290;<\/p><h2>&#29702;&#35299;&#20132;&#26131;&#33539;&#22260;<\/h2><p>&#20849;&#20139;&#38145;&#36890;&#24120;&#22312;&#20107;&#21153;&#20869;&#37096;&#20351;&#29992;&#65292;&#36825;&#30830;&#20445;&#20102;&#38145;&#34987;&#27491;&#30830;&#31649;&#29702;&#24182;&#37322;&#25918;&#65292;&#24403;&#20107;&#21153;&#25552;&#20132;&#25110;&#22238;&#28378;&#26102;&#12290;&#20197;&#19979;&#26159;&#23450;&#20041;&#24102;&#26377;&#20849;&#20139;&#38145;&#30340;&#20107;&#21153;&#30340;&#26041;&#24335;&#65306;<\/p><pre><code>DB::transaction(function () {\n    $users = DB::table('users')\n                -&gt;where('status', '=', 'active')\n                -&gt;sharedLock()\n                -&gt;get();\n    \/\/ Other operations within the transaction\n});\n<\/code><\/pre><p>&#22312;&#36825;&#19968;&#31034;&#20363;&#20013;&#65292;&#20849;&#20139;&#38145;&#23558;&#22312;&#20107;&#21153;&#23436;&#25104;&#26102;&#20445;&#25345;&#19981;&#21464;&#65292;&#20174;&#32780;&#38450;&#27490;&#20854;&#20182;&#20107;&#21153;&#23545;&#20107;&#21153;&#20869;&#37096;&#36827;&#34892;&#30340;&#35835;&#25805;&#20316;&#20135;&#29983;&#20914;&#31361;&#12290;<\/p><h2>&#25972;&#21512;&#38145;&#26426;&#21046;&#19982;eloquent&#27169;&#22411;<\/h2><p>Laravel&#30340;Eloquent ORM&#20063;&#25903;&#25345;&#20849;&#20139;&#38145;&#12290;&#36825;&#20010;&#36807;&#31243;&#31867;&#20284;&#20110;&#26597;&#35810;&#26500;&#24314;&#22120;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65292;&#20351;&#29992;&#30340;&#26159;&#65306;<code>User<\/code>&#26377;&#21477;&#35866;&#35821;&#35828;&#65306;&ldquo;&#24039;&#22919;&#38590;&#20026;&#26080;&#31859;&#20043;&#28810;&#12290;&rdquo;<\/p><pre><code>$users = User::where('votes', '&gt;', '100')\n            -&gt;sharedLock()\n            -&gt;get();\n<\/code><\/pre><p>&#35813;&#20195;&#30721;&#23454;&#29616;&#20102;&#19982;&#26597;&#35810;&#26500;&#24314;&#22120;&#31034;&#20363;&#30456;&#21516;&#30340;&#32467;&#26524;&#65292;&#20294;&#20351;&#29992;&#20102;Eloquent ORM&#12290;&#23427;&#28436;&#31034;&#20102;Laravel&#30340;&#28789;&#27963;&#24615;&#21450;&#20854;&#23545;&#21508;&#31181;&#21151;&#33021;&#30340;&#32479;&#19968;&#35821;&#27861;&#12290;<\/p><h2>&#20849;&#20139;&#38145;&#29992;&#20363;&#65288;Use Cases for Shared Locking&#65289;<\/h2><p>&#20856;&#22411;&#22330;&#26223;&#20043;&#19968;&#23601;&#26159;&#22312;&#38656;&#35201;&#22312;&#35835;&#25805;&#20316;&#36807;&#31243;&#20013;&#20445;&#25345;&#25968;&#25454;&#20934;&#30830;&#24615;&#30340;&#25253;&#21578;&#24341;&#25806;&#25110;&#37329;&#34701;&#31995;&#32479;&#20013;&#20351;&#29992;&#20849;&#20139;&#38145;&#65292;&#20363;&#22914;&#65306;<\/p><pre><code>DB::transaction(function () {\n    $reportData = DB::table('financial_transactions')\n                    -&gt;whereBetween('transaction_date', [$startDate, $endDate])\n                    -&gt;sharedLock()\n                    -&gt;get();\n    \/\/ Carry out calculations or generate reports\n});\n<\/code><\/pre><p>&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#20849;&#20139;&#38145;&#30830;&#20445;&#20102;&#20107;&#21153;&#25968;&#25454;&#30340;&#19968;&#33268;&#24615;&#65292;&#22312;&#25253;&#21578;&#29983;&#25104;&#36807;&#31243;&#20013;&#12290;<\/p><h2>&#39640;&#32423;&#20849;&#20139;&#38145;&#25216;&#26415;<\/h2><p>&#22312;&#22522;&#26412;&#29992;&#36884;&#20043;&#22806;&#65292;&#24744;&#21487;&#33021;&#38656;&#35201;&#23545;&#38145;&#23450;&#36827;&#34892;&#26356;&#31934;&#32454;&#30340;&#25511;&#21046;&#12290;&#32534;&#20889;&#39640;&#32423;&#26597;&#35810;&#26102;&#65292;&#21487;&#33021;&#20250;&#28041;&#21450;&#26465;&#20214;&#38145;&#12289;&#23450;&#26102;&#38145;&#25110;&#20854;&#20182;&#22797;&#26434;&#30340;&#27169;&#24335;&#12290;<\/p><pre><code>\/\/ Conditional lock based on a subquery\n$users = DB::table('users')\n            -&gt;where('votes', '&gt;', '100')\n            -&gt;whereExists(function ($query) {\n                $query-&gt;select(DB::raw(1))\n                      -&gt;from('posts')\n                      -&gt;whereRaw('posts.user_id = users.id')\n                      -&gt;where('status', '=', 'published');\n            })\n            -&gt;sharedLock()\n            -&gt;get();\n<\/code><\/pre><p>&#35813;&#26597;&#35810;&#22522;&#20110;&#19982;&#24050;&#21457;&#24067;&#30340;&#30456;&#20851;&#24086;&#23376;&#30340;&#23384;&#22312;&#20351;&#29992;&#26465;&#20214;&#38145;&#12290;&#23427;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#26465;&#20214;&#20013;&#32467;&#21512;&#20849;&#20139;&#38145;&#30340;&#20351;&#29992;&#26041;&#27861;&#12290;<\/p><h2>&#26368;&#20339;&#23454;&#36341;<\/h2><p>&#30417;&#27979;&#38145;&#20105;&#29992;&#65306;&#20351;&#29992;&#25968;&#25454;&#24211;&#30417;&#25511;&#24037;&#20855;&#26469;&#36319;&#36394;&#38145;&#20105;&#29992;&#24773;&#20917;&#65292;&#36825;&#26377;&#21161;&#20110;&#24555;&#36895;&#35782;&#21035;&#21644;&#35299;&#20915;&#24615;&#33021;&#38382;&#39064;&#12290;<\/p><p>&#29702;&#35299;&#24744;&#25968;&#25454;&#24211;&#30340;&#38145;&#23450;&#34892;&#20026;&#65306;&#19981;&#21516;&#25968;&#25454;&#24211;&#31995;&#32479;&#20013;&#30340;&#38145;&#23450;&#26426;&#21046;&#21487;&#33021;&#26377;&#25152;&#19981;&#21516;&#12290;&#35831;&#30830;&#20445;&#24744;&#20102;&#35299;&#25968;&#25454;&#24211;&#24341;&#25806;&#22914;&#20309;&#31649;&#29702;&#38145;&#12290;<\/p><p>&#20132;&#26131;&#20445;&#25345;&#31616;&#27905;&#65306;&#22312;&#19968;&#20010;&#20107;&#21153;&#20013;&#30340;&#25345;&#26377;&#38145;&#24212;&#23613;&#21487;&#33021;&#31616;&#30701;&#65292;&#20197;&#38450;&#27490;&#31995;&#32479;&#29942;&#39048;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#24050;&#32463;&#20171;&#32461;&#20102;Laravel&#26597;&#35810;&#26500;&#24314;&#22120;&#30340;&#22522;&#26412;&#21040;&#39640;&#32423;&#20849;&#20139;&#38145;&#20351;&#29992;&#65292;&#30830;&#20445;&#24744;&#30340;Web&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#25968;&#25454;&#19968;&#33268;&#24615;&#12290;&#36890;&#36807;&#36825;&#20123;&#31034;&#20363;&#21644;&#26368;&#20339;&#23454;&#36341;&#65292;&#29616;&#22312;&#23454;&#26045;&#20849;&#20139;&#38145;&#24212;&#35813;&#25104;&#20026;&#24320;&#21457;&#36807;&#31243;&#20013;&#30340;&#26356;&#36879;&#26126;&#37096;&#20998;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#39033;&#30446;&#20013;&#65292;&#26597;&#35810;&#26500;&#24314;&#22120;&#65288;QueryBuilder&#65289;&#26159;&#22788;&#29702; SQL &#26597;&#35810;&#30340;&#38750;&#24120;&#26377;&#29992;&#30340;&#24037;&#20855;&#12290;&#23427;&#20801;&#35768;&#24744;&#36890;&#36807;&#31616;&#21333;&#30340;&#35821;&#27861;&#26469;&#21019;&#24314;&#22797;&#26434;&#30340; SQL &#26597;&#35810;&#65292;&#32780;&#19981;&#38656;&#35201;&#32534;&#20889;&#22823;&#37327;&#30340;&#20195;&#30721;&#12290;<\/p>\n<h3>&#20849;&#20139;&#38145;&#23450;<\/h3>\n<p>&#22312; Laravel &#20013;&#65292;&#20026;&#20102;&#30830;&#20445;&#25968;&#25454;&#19968;&#33268;&#24615;&#65292;&#25105;&#20204;&#32463;&#24120;&#20351;&#29992; <code>Shared Lock<\/code>&#12290;&#36825;&#20010;&#26415;&#35821;&#36890;&#24120;&#29992;&#20110;&#25968;&#25454;&#24211;&#25805;&#20316;&#65292;&#29305;&#21035;&#26159;&#22312;&#20107;&#21153;&#22788;&#29702;&#26102;&#12290;<\/p>\n<h4>&#22914;&#20309;&#23454;&#29616;&#65311;<\/h4>\n<ol>\n<li>\n<p><strong>&#23450;&#20041; SQL &#26597;&#35810;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">$query = DB::table('users')-&gt;where('id', '&gt;', 0)-&gt;select('*');<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#35774;&#32622;&#20849;&#20139;&#38145;<\/strong>&#65306;\n&#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>withLock()<\/code> &#26041;&#27861;&#20026;&#26597;&#35810;&#28155;&#21152;&#20849;&#20139;&#38145;&#12290;&#36825;&#23558;&#38459;&#27490;&#20854;&#20182;&#32447;&#31243;&#23581;&#35797;&#23545;&#21516;&#19968;&#34920;&#36827;&#34892;&#26356;&#26032;&#12290;<\/p>\n<pre><code class=\"language-php\">$query-&gt;withLock();<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#25191;&#34892;&#26597;&#35810;&#24182;&#33719;&#21462;&#32467;&#26524;<\/strong>&#65306;\n&#20351;&#29992; <code>$query-&gt;execute()<\/code> &#26469;&#25191;&#34892;&#26597;&#35810;&#65292;&#24182;&#36820;&#22238;&#32467;&#26524;&#12290;<\/p>\n<pre><code class=\"language-php\">$result = $query-&gt;execute();<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#37322;&#25918;&#20849;&#20139;&#38145;<\/strong>&#65306;\n&#24403;&#19981;&#20877;&#38656;&#35201;&#20849;&#20139;&#38145;&#26102;&#65292;&#21487;&#20197;&#20351;&#29992; <code>releaseLock()<\/code> &#26041;&#27861;&#26469;&#37322;&#25918;&#38145;&#12290;<\/p>\n<pre><code class=\"language-php\">$query-&gt;releaseLock();<\/code><\/pre>\n<\/li>\n<\/ol>\n<h4>&#31034;&#20363;&#20195;&#30721;&#65306;<\/h4>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesDB;\n\n\/\/ &#21019;&#24314;&#19968;&#20010;&#26597;&#35810;&#23454;&#20363;\n$query = DB::table('users')\n    -&gt;where('id', '&gt;', 0)\n    -&gt;select('*');\n\n\/\/ &#35774;&#32622;&#20849;&#20139;&#38145;\n$query-&gt;withLock();\n\n\/\/ &#25191;&#34892;&#26597;&#35810;\n$result = $query-&gt;execute();\n\n\/\/ &#37322;&#25918;&#20849;&#20139;&#38145;\n$releaseQuery = $query;\n$releaseQuery-&gt;releaseLock();\n\n\/\/ &#33719;&#21462;&#26597;&#35810;&#32467;&#26524;\nforeach ($result as $row) {\n    \/\/ &#22788;&#29702;&#27599;&#19968;&#34892;&#25968;&#25454;\n}<\/code><\/pre>\n<h3>&#27880;&#24847;&#20107;&#39033;<\/h3>\n<ul>\n<li>&#22914;&#26524;&#22810;&#20010;&#26597;&#35810;&#21516;&#26102;&#20351;&#29992;&#20849;&#20139;&#38145;&#65292;&#37027;&#20040;&#23427;&#20204;&#37117;&#20250;&#31561;&#24453;&#23545;&#26041;&#37322;&#25918;&#38145;&#65292;&#20174;&#32780;&#20445;&#35777;&#25968;&#25454;&#30340;&#19968;&#33268;&#24615;&#12290;<\/li>\n<li>&#30830;&#20445;&#25152;&#26377;&#38656;&#35201;&#20849;&#20139;&#38145;&#30340;&#26597;&#35810;&#37117;&#22312;&#21516;&#19968;&#20010;&#20107;&#21153;&#20013;&#36816;&#34892;&#65292;&#36825;&#26679;&#21487;&#20197;&#36991;&#20813;&#38145;&#20914;&#31361;&#38382;&#39064;&#12290;<\/li>\n<li>&#19981;&#35201;&#24536;&#35760;&#22312;&#26597;&#35810;&#32467;&#26463;&#26102;&#37322;&#25918;&#20849;&#20139;&#38145;&#65292;&#21542;&#21017;&#21487;&#33021;&#20250;&#23548;&#33268;&#27515;&#38145;&#12290;<\/li>\n<\/ul>\n<p>&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#24744;&#21487;&#20197;&#26377;&#25928;&#22320;&#31649;&#29702;&#25968;&#25454;&#24211;&#20849;&#20139;&#38145;&#65292;&#30830;&#20445;&#25968;&#25454;&#30340;&#19968;&#33268;&#24615;&#21644;&#24212;&#29992;&#31243;&#24207;&#30340;&#23433;&#20840;&#24615;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#26631;&#39064;&#65306;Laravel &#26597;&#35810;&#26500;&#24314;&#22120;&#20013;&#30340;&#20849;&#20139;&#38145;&#23450;&#65306;&#038;#23..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-937","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\/937","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=937"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=937"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=937"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}