{"id":923,"date":"2025-06-12T02:51:07","date_gmt":"2025-06-11T18:51:07","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/923.html"},"modified":"2025-06-12T02:51:07","modified_gmt":"2025-06-11T18:51:07","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-laravel-%e6%9f%a5%e8%af%a2%e6%9e%84%e9%80%a0%e5%99%a8%e4%b8%ad%e8%81%94%e5%90%88%e6%9f%a5%e8%af%a2","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/923.html","title":{"rendered":"\u5982\u4f55\u5728 Laravel \u67e5\u8be2\u6784\u9020\u5668\u4e2d\u8054\u5408\u67e5\u8be2"},"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;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>join<\/code> &#26041;&#27861;&#26469;&#25191;&#34892;&#32852;&#21512;&#26597;&#35810;&#12290;&#32852;&#21512;&#26597;&#35810;&#20801;&#35768;&#20320;&#22312;&#20004;&#20010;&#25110;&#22810;&#20010;&#34920;&#20043;&#38388;&#36827;&#34892;&#36830;&#25509;&#25805;&#20316;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312;&#26597;&#35810;&#26500;&#36896;&#22120;&#20013;&#20351;&#29992; <code>join<\/code> &#26041;&#27861;&#30340;&#31034;&#20363;&#65306;<\/p>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#20004;&#20010;&#34920;&#65306;<code>users<\/code> &#21644; <code>posts<\/code>&#65292;&#23427;&#20204;&#20043;&#38388;&#30340;&#20851;&#31995;&#26159;&#36890;&#36807; <code>user_id<\/code> &#23383;&#27573;&#20851;&#32852;&#36215;&#26469;&#30340;&#12290;<\/p>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;&#27169;&#22411;<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#20026;&#36825;&#20004;&#20010;&#34920;&#21019;&#24314;&#20102;&#30456;&#24212;&#30340;&#27169;&#22411;&#25991;&#20214;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Models\/User.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass User extends Model\n{\n   protected $fillable = ['name', 'email'];\n}\n\n\/\/ app\/Models\/Post.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass Post extends Model\n{\n   protected $fillable = ['title', 'content', 'user_id'];\n\n   public function user()\n   {\n       return $this-&gt;belongsTo(User::class);\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#32534;&#20889;&#26597;&#35810;<\/strong>&#65306;\n&#29616;&#22312;&#65292;&#25105;&#20204;&#21487;&#20197;&#32534;&#20889;&#19968;&#20010;&#26597;&#35810;&#65292;&#23427;&#23558;&#20174; <code>users<\/code> &#34920;&#21644; <code>posts<\/code> &#34920;&#20013;&#33719;&#21462;&#25968;&#25454;&#65292;&#24182;&#36820;&#22238;&#27599;&#20010;&#29992;&#25143;&#30340;&#24086;&#23376;&#21015;&#34920;&#12290;<\/p>\n<pre><code class=\"language-php\">use AppModelsUser;\nuse AppModelsPost;\n\n\/\/ &#33719;&#21462;&#25152;&#26377;&#29992;&#25143;&#21450;&#20854;&#24086;&#23376;&#21015;&#34920;\n$usersWithPosts = User::with('posts')-&gt;get();\n\nforeach ($usersWithPosts as $user) {\n   echo \"User: {$user-&gt;name}n\";\n   foreach ($user-&gt;posts as $post) {\n       echo \"- Title: {$post-&gt;title}n\";\n       echo \"  Content: {$post-&gt;content}n\";\n   }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#20351;&#29992;&#20102; <code>with<\/code> &#26041;&#27861;&#26469;&#21152;&#36733;&#19982; <code>User<\/code> &#27169;&#22411;&#30456;&#20851;&#30340; <code>posts<\/code> &#20851;&#32852;&#30340;&#25968;&#25454;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#36941;&#21382;&#32467;&#26524;&#38598;&#24182;&#36755;&#20986;&#27599;&#20010;&#29992;&#25143;&#30340;&#22995;&#21517;&#20197;&#21450;&#20182;&#20204;&#21457;&#24067;&#30340;&#24086;&#23376;&#26631;&#39064;&#21644;&#20869;&#23481;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;&#30456;&#20851;&#27493;&#39588;<\/h3>\n<ol>\n<li>\n<p><strong>&#23433;&#35013; Laravel<\/strong>&#65288;&#22914;&#26524;&#23578;&#26410;&#23433;&#35013;&#65289;&#65306;\n&#22914;&#26524;&#20320;&#36824;&#27809;&#26377;&#23433;&#35013; Laravel&#65292;&#21487;&#20197;&#20351;&#29992; Composer &#26469;&#23433;&#35013;&#12290;<\/p>\n<pre><code class=\"language-bash\">composer create-project --prefer-dist laravel\/laravel my-laravel-app\ncd my-laravel-app<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#27169;&#22411;<\/strong>&#65306;\n&#21019;&#24314; <code>User<\/code> &#21644; <code>Post<\/code> &#27169;&#22411;&#25991;&#20214;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#32534;&#20889;&#26597;&#35810;<\/strong>&#65306;\n&#32534;&#20889;&#26597;&#35810;&#20197;&#33719;&#21462;&#29992;&#25143;&#21450;&#20854;&#24086;&#23376;&#21015;&#34920;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#36816;&#34892;&#26597;&#35810;<\/strong>&#65306;\n&#36816;&#34892;&#26597;&#35810;&#24182;&#26597;&#30475;&#32467;&#26524;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#36890;&#36807;&#36825;&#20123;&#27493;&#39588;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#25104;&#21151;&#22320;&#22312; Laravel &#20013;&#20351;&#29992;&#26597;&#35810;&#26500;&#36896;&#22120;&#20013;&#30340; <code>join<\/code> &#26041;&#27861;&#26469;&#25191;&#34892;&#32852;&#21512;&#26597;&#35810;&#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;&#26500;&#24314;&#22797;&#26434;&#30340;&#26597;&#35810;&#26102;&#65292;&#26377;&#26102;&#38656;&#35201;&#23558;&#22810;&#20010;&#26597;&#35810;&#30340;&#32467;&#26524;&#21512;&#24182;&#20026;&#21333;&#20010;&#32467;&#26524;&#38598;&#12290;&#36825;&#26102;&#65292;SQL&#30340;UNION&#36816;&#31639;&#31526;&#38750;&#24120;&#26377;&#29992;&#65292;&#32780;Laravel&#30340;Query Builder&#21017;&#25552;&#20379;&#20102;&#19968;&#20010;&#26041;&#20415;&#30340;&#25509;&#21475;&#26469;&#25191;&#34892;&#36825;&#31181;&#32852;&#21512;&#25805;&#20316;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#23398;&#20064;&#22914;&#20309;&#20351;&#29992;Laravel&#30340;Query Builder&#20013;&#30340;&#32852;&#21512;&#21151;&#33021;&#12290;<\/p><h2>&#22312;SQL&#20013;&#65292;UNION&#29992;&#20110;&#21512;&#24182;&#20004;&#20010;&#25110;&#22810;&#20010;&#26597;&#35810;&#30340;&#32467;&#26524;&#38598;&#12290;&#23427;&#20250;&#21024;&#38500;&#25152;&#26377;&#37325;&#22797;&#30340;&#34892;&#24182;&#21482;&#20445;&#30041;&#19968;&#20010;&#12290;<\/h2><p>SQL&#30340;UNION&#36816;&#31639;&#31526;&#29992;&#20110;&#23558;&#20004;&#20010;&#25110;&#22810;&#20010;SELECT&#26597;&#35810;&#30340;&#32467;&#26524;&#38598;&#21512;&#24182;&#20026;&#21333;&#20010;&#32467;&#26524;&#38598;&#12290;&#36825;&#20123;&#26597;&#35810;&#24517;&#39035;&#20855;&#26377;&#30456;&#21516;&#30340;&#21015;&#25968;&#65292;&#19988;&#36825;&#20123;&#21015;&#30340;&#25968;&#25454;&#31867;&#22411;&#20063;&#38656;&#30456;&#20284;&#12290;ORDER BY&#23376;&#21477;&#21482;&#33021;&#22312;&#26368;&#21518;&#19968;&#20010;SELECT&#26597;&#35810;&#20013;&#20351;&#29992;&#12290;<\/p><h2>&#22312;Laravel&#20013;&#65292;&#22522;&#26412;&#30340;&#32852;&#21512;&#65288;union&#65289;&#25805;&#20316;&#36890;&#24120;&#29992;&#20110;&#21512;&#24182;&#20004;&#20010;&#25110;&#22810;&#20010;&#26597;&#35810;&#30340;&#32467;&#26524;&#38598;&#12290;&#36825;&#21487;&#20197;&#36890;&#36807;&#20351;&#29992;DB::table()&#26041;&#27861;&#21644;-&gt;union()&#25110;&#32773;-&gt;unionAll()&#26469;&#23454;&#29616;&#12290;&#20363;&#22914;&#65306;\n$originalResults = DB::table(&#8216;original_table&#8217;)-&gt;get();\n$newData = DB::table(&#8216;new_data&#8217;)-&gt;select(&#8216;*&#8217;);\n\n$results = $originalResults-&gt;merge($newData)-&gt;all();\n\n\/\/ &#25110;&#32773;&#20351;&#29992; unionAll\n\n$results = $originalResults-&gt;unionAll($newData)-&gt;all();\n&#35831;&#27880;&#24847;&#65292;-&gt;union()&#20250;&#21024;&#38500;&#21407;&#22987;&#34920;&#20013;&#30340;&#37325;&#22797;&#34892;&#65292;&#32780;-&gt;unionAll()&#21017;&#19981;&#20250;&#21024;&#38500;&#20219;&#20309;&#37325;&#22797;&#34892;&#12290;\n&#22914;&#26524;&#20320;&#26377;&#26356;&#22810;&#20851;&#20110;&#22914;&#20309;&#22312;Laravel&#20013;&#23454;&#29616;&#32852;&#21512;&#30340;&#20855;&#20307;&#38382;&#39064;&#65292;&#35831;&#21578;&#35785;&#25105;&#65281;<\/h2><p>&#22312;Laravel&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#12290;<code>union()<\/code>&#26041;&#27861;&#26469;&#25191;&#34892;&#24182;&#38598;&#25805;&#20316;&#12290;&#36825;&#37324;&#26377;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#65306;<\/p><pre><code>$first = DB::table('first_table')-&gt;where('status', 'active');\n$second = DB::table('second_table')-&gt;where('status', 'active');\n$union = $first-&gt;union($second)-&gt;get();\n<\/code><\/pre><p>&#22312;&#19978;&#36848;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#26597;&#35810;&#20102;&#20004;&#20010;&#34920;&ldquo;first_table&rdquo;&#21644;&ldquo;second_table&rdquo;&#65292;&#20854;&#20013;&#21253;&#21547;&#29366;&#24577;&#20026;&ldquo;active&rdquo;&#30340;&#35760;&#24405;&#12290;&#28982;&#21518;&#25105;&#20204;&#23558;&#36825;&#20123;&#32467;&#26524;&#32467;&#21512;&#22312;&#19968;&#36215;&#12290;<code>union()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><h2>&#39640;&#32423;&#32852;&#21512;&#26597;&#35810;<\/h2><p>&#26377;&#26102;&#65292;&#20320;&#38656;&#35201;&#20351;&#29992;&#26356;&#39640;&#32423;&#30340;&#32852;&#21512;&#26597;&#35810;&#65292;&#36825;&#20123;&#26597;&#35810;&#38656;&#35201;&#23376;&#26597;&#35810;&#25110;&#29305;&#23450;&#25490;&#24207;&#21644;&#38480;&#21046;&#30340;&#32467;&#26524;&#12290;<\/p><h3>&#19982;&#23376;&#26597;&#35810;&#20851;&#32852;<\/h3><pre><code>$first = DB::table('first_table')\n\t-&gt;select('name')\n\t-&gt;where('status', 'active');\n\n$sub = DB::table('second_table')\n\t-&gt;select('name')\n\t-&gt;where('status', 'inactive')-&gt;orderBy('name');\n\n$union = $first-&gt;union($sub);\n$results = DB::query()-&gt;fromSub($union, 'sub_query')-&gt;get();\n<\/code><\/pre><p>&#35813;&#20195;&#30721;&#23637;&#31034;&#20102;&#24102;&#26377;&#23376;&#26597;&#35810;&#30340;&#32852;&#21512;&#26597;&#35810;&#12290;&#35831;&#27880;&#24847;&#20351;&#29992;&#20102;<code>fromSub()<\/code>&#20026;&#35813;&#24037;&#20250;&#25552;&#20986;&#19968;&#20010;&#21517;&#31216;&#12290;<\/p><h3>&#25152;&#26377;&#26597;&#35810;&#30340;&#24182;&#38598;<\/h3><p>Laravel &#20063;&#25903;&#25345;&#36825;&#20010;&#12290;<code>unionAll()<\/code>&#26041;&#27861;&#65292;&#19981;&#21024;&#38500;&#37325;&#22797;&#34892;&#65306;<\/p><pre><code>$first = DB::table('first_table')-&gt;where('status', 'active');\n$second = DB::table('second_table')-&gt;where('status', 'active');\n$unionAll = $first-&gt;unionAll($second)-&gt;get();\n<\/code><\/pre><h3>&#35746;&#36141;&#21644;&#38480;&#21046;&#32852;&#21512;&#26597;&#35810;<\/h3><p>&#22312;&#32852;&#25509;&#25805;&#20316;&#20013;&#25490;&#24207;&#21644;&#38480;&#21046;&#32467;&#26524;&#38656;&#35201;&#23558;&#32852;&#25509;&#20316;&#20026;&#23376;&#26597;&#35810;&#21253;&#35065;&#36215;&#26469;&#65306;<\/p><pre><code>$first = DB::table('users')-&gt;where('votes', '&gt;', 100);\n$second = DB::table('users')-&gt;where('name', 'John');\n$users = $first-&gt;union($second);\n$allUsers = DB::query()-&gt;fromSub($users, 'all_users')-&gt;orderBy('votes', 'desc')-&gt;take(10)-&gt;get();\n<\/code><\/pre><p>&#36825;&#23558;&#32473;&#25105;&#20204;&#20004;&#20010;&#26597;&#35810;&#30340;&#21512;&#24182;&#32467;&#26524;&#38598;&#65292;&#25353;&lsquo;&#25237;&#31080;&#25968;&rsquo;&#25490;&#24207;&#65292;&#24182;&#38480;&#21046;&#20026;10&#26465;&#32467;&#26524;&#12290;<\/p><h2>&#20998;&#39029;&#26597;&#35810;&#19982;&#32852;&#25509;&#26597;&#35810;<\/h2><p>&#22914;&#26524;&#38656;&#35201;&#20174;&#32852;&#25509;&#26597;&#35810;&#30340;&#32467;&#26524;&#39029;&#25968;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#12290;<code>paginate()<\/code>&#26041;&#27861;&#65306;<\/p><pre><code>$first = DB::table('users')-&gt;where('votes', '&gt;', 100);\n$second = DB::table('users')-&gt;where('name', 'John');\n$users = $first-&gt;union($second);\n$paginatedUsers = DB::query()-&gt;fromSub($users, 'paginated_users')-&gt;orderBy('votes', 'desc')-&gt;paginate(15);\n<\/code><\/pre><p>&#19978;&#36848;&#20195;&#30721;&#20250;&#20174;&#32852;&#25509;&#26597;&#35810;&#20013;&#29983;&#25104;&#20998;&#39029;&#32467;&#26524;&#65292;&#20174;&#32780;&#23454;&#29616;&#39640;&#25928;&#30340;&#25968;&#25454;&#26174;&#31034;&#21644;&#23548;&#33322;&#21151;&#33021;&#12290;<\/p><h2>&#32467;&#21512;&#32852;&#21512;&#26597;&#35810;&#19982;&#20854;&#20182;&#22797;&#26434;&#26597;&#35810;<\/h2><p>Laravel&#30340;&#26597;&#35810;&#26500;&#24314;&#22120;&#20801;&#35768;&#24744;&#36731;&#26494;&#22320;&#32467;&#21512;&#32852;&#25509;&#35821;&#21477;&#21644;&#20854;&#20182;&#22797;&#26434;&#26597;&#35810;&#65292;&#22914;&#20351;&#29992;union&#35821;&#21477;&#12290;<\/p><pre><code>$first = DB::table('users')\n\t-&gt;join('contacts', 'users.id', '=', 'contacts.user_id')\n\t-&gt;where('users.status', 'active');\n\n$second = DB::table('users')\n\t-&gt;join('orders', 'users.id', '=', 'orders.user_id')\n\t-&gt;select('users.name', 'orders.price')\n\t-&gt;where('orders.status', 'approved');\n\n$unionWithJoin = $first-&gt;union($second);\n$results = DB::query()-&gt;fromSub($unionWithJoin, 'union_join')-&gt;get();\n<\/code><\/pre><p>&#35813;&#31034;&#20363;&#23637;&#31034;&#20102;&#22914;&#20309;&#36890;&#36807;&#20351;&#29992;&#36830;&#25509;&#23376;&#21477;&#21644;&#24182;&#38598;&#65292;&#21019;&#24314;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#65292;&#21516;&#26102;&#20445;&#25345;&#20195;&#30721;&#28165;&#26224;&#27969;&#30021;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>Laravel&#30340;&#26597;&#35810;&#26500;&#24314;&#22120;&#20351;&#24471;&#22788;&#29702;&#32852;&#25509;&#26597;&#35810;&#21464;&#24471;&#31616;&#21333;&#65292;&#20801;&#35768;&#24744;&#20351;&#29992;&#31616;&#27905;&#30340;&#20195;&#30721;&#26500;&#24314;&#39640;&#25928;&#30340;&#25968;&#25454;&#24211;&#26597;&#35810;&#12290;&#23454;&#36341;&#36825;&#20123;&#25216;&#24039;&#20197;&#22686;&#24378;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#25968;&#25454;&#33719;&#21462;&#33021;&#21147;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>Laravel &#30340; Query &#26500;&#36896;&#22120;&#20801;&#35768;&#24744;&#36890;&#36807;&#35843;&#29992; <code>.where()<\/code> &#26041;&#27861;&#26469;&#25191;&#34892;&#22522;&#20110;&#26465;&#20214;&#30340;&#26597;&#35810;&#12290;&#28982;&#32780;&#65292;&#22914;&#26524;&#24744;&#38656;&#35201;&#36827;&#34892;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#65292;&#20363;&#22914;&#32852;&#21512;&#26597;&#35810;&#65288;&#20063;&#31216;&#20026;&#20851;&#32852;&#26597;&#35810;&#65289;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992; <code>-&gt;select()<\/code> &#21644; <code>-&gt;union()<\/code> &#26041;&#27861;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#22914;&#20309;&#22312; Laravel &#20013;&#21019;&#24314;&#21644;&#25191;&#34892;&#32852;&#21512;&#26597;&#35810;&#30340;&#19968;&#20010;&#20363;&#23376;&#65306;<\/p>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>User<\/code> &#30340;&#27169;&#22411;&#65292;&#23427;&#26377;&#20004;&#20010;&#23383;&#27573;&#65306;<code>id<\/code> &#21644; <code>name<\/code>&#12290;&#27492;&#22806;&#65292;&#36824;&#26377;&#19968;&#20010;&#21517;&#20026; <code>Post<\/code> &#30340;&#27169;&#22411;&#65292;&#23427;&#26377;&#19977;&#20010;&#23383;&#27573;&#65306;<code>id<\/code>&#12289;<code>title<\/code> &#21644; <code>content<\/code>&#12290;<\/p>\n<pre><code class=\"language-php\">use AppModelsUser;\nuse AppModelsPost;\n\n\/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#20197;&#19979;&#25968;&#25454;&#65306;\n$user1 = User::find(1);\n$post1 = Post::first();\n\n\/\/ &#25105;&#20204;&#24819;&#26597;&#25214;&#25152;&#26377;&#29992;&#25143;&#30340;&#21517;&#23383;&#21644;&#20182;&#20204;&#30340;&#26368;&#26032;&#24086;&#23376;&#12290;\n$usersWithLatestPosts = $user1-&gt;select('name', 'posts-&gt;title, posts-&gt;content')-&gt;with('posts')\n    -&gt;latest()\n    -&gt;get();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#20351;&#29992; <code>-&gt;with('posts')<\/code> &#26469;&#20026;&#27599;&#20010;&#29992;&#25143;&#33719;&#21462;&#20854;&#26368;&#36817;&#21457;&#24067;&#30340;&#24086;&#23376;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#20351;&#29992; <code>-&gt;latest()<\/code> &#26469;&#33719;&#21462;&#26368;&#26032;&#21457;&#24067;&#30340;&#25152;&#26377;&#24086;&#23376;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#20351;&#29992; <code>-&gt;get()<\/code> &#26469;&#33719;&#21462;&#32467;&#26524;&#12290;<\/p>\n<p>&#35831;&#27880;&#24847;&#65292;&#36825;&#20010;&#20363;&#23376;&#20013;&#30340; <code>posts-&gt;title, posts-&gt;content<\/code> &#26159;&#25351;&#23450;&#20102;&#20004;&#20010;&#23646;&#24615;&#30340;&#32852;&#21512;&#26597;&#35810;&#65292;&#32780;&#19981;&#26159;&#21333;&#29420;&#30340;&#26597;&#35810;&#12290;&#22914;&#26524;&#20320;&#24819;&#35201;&#19968;&#20010;&#21333;&#29420;&#30340;&#26597;&#35810;&#65292;&#20320;&#38656;&#35201;&#23558;&#23427;&#20204;&#25918;&#22312;&#25324;&#21495;&#37324;&#65292;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p>\n<pre><code class=\"language-php\">$usersWithLatestPosts = $user1-&gt;select('name', 'posts.title, posts.content')\n    -&gt;with('posts')\n    -&gt;latest()\n    -&gt;get();<\/code><\/pre>\n<p>&#29616;&#22312;&#35753;&#25105;&#20204;&#30475;&#19968;&#20010;&#32852;&#21512;&#26597;&#35810;&#30340;&#20363;&#23376;&#65292;&#20854;&#20013;&#25105;&#20204;&#23558;&#26597;&#35810;&#22810;&#20010;&#34920;&#20013;&#30340;&#25968;&#25454;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppModelsUser;\nuse AppModelsPost;\nuse IlluminateDatabaseEloquentBuilder;\n\nclass PostQuery extends Builder\n{\n    public function scopeUsers($query)\n    {\n        return $query-&gt;join('users', 'users.id', '=', 'posts.user_id');\n    }\n}\n\n$postQuery = new PostQuery();\n\n$usersWithLatestPosts = $postQuery\n    -&gt;where('posts.user_id', $user1-&gt;id)\n    -&gt;orWhere('posts.user_id', $user2-&gt;id)\n    -&gt;select('name', 'posts-&gt;title, posts-&gt;content')\n    -&gt;with('posts')\n    -&gt;latest()\n    -&gt;get();\n\n$usersWithLatestPosts = $postQuery\n    -&gt;where(function ($query) use ($user1, $user2) {\n        $query-&gt;where('posts.user_id', $user1-&gt;id)\n            -&gt;orWhere('posts.user_id', $user2-&gt;id);\n    })\n    -&gt;select('name', 'posts-&gt;title, posts-&gt;content')\n    -&gt;with('posts')\n    -&gt;latest()\n    -&gt;get();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#20351;&#29992; <code>-&gt;join('users', 'users.id', '=', 'posts.user_id')<\/code> &#26469;&#20851;&#32852;&#29992;&#25143;&#21644;&#24086;&#23376;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#20351;&#29992; <code>-&gt;orWhere<\/code> &#26469;&#21512;&#24182;&#20004;&#20010;&#26465;&#20214;&#12290;&#27880;&#24847;&#65292;&#25105;&#20204;&#22312;&#31532;&#19968;&#20010;&#26597;&#35810;&#20013;&#20351;&#29992;&#20102; <code>-&gt;where<\/code> &#26469;&#35774;&#32622;&#31532;&#19968;&#20010;&#26465;&#20214;&#65292;&#32780;&#22312;&#31532;&#20108;&#20010;&#26597;&#35810;&#20013;&#20351;&#29992;&#20102; <code>-&gt;orWhere<\/code> &#26469;&#35774;&#32622;&#31532;&#20108;&#20010;&#26465;&#20214;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#33021;&#24110;&#21161;&#24744;&#20102;&#35299;&#22914;&#20309;&#22312; Laravel &#20013;&#21019;&#24314;&#21644;&#25191;&#34892;&#32852;&#21512;&#26597;&#35810;&#65281;<\/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;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; join &#26041;&#27861;&#26469;&#25191;&#34892;&#32852;&#038;#215..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-923","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\/923","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=923"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=923"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=923"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}