{"id":989,"date":"2025-06-12T04:19:50","date_gmt":"2025-06-11T20:19:50","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/989.html"},"modified":"2025-06-12T04:19:50","modified_gmt":"2025-06-11T20:19:50","slug":"laravel-eloquent%ef%bc%9a%e5%9c%a8%e5%92%8c%e4%b8%8d%e5%9c%a8%e8%bf%90%e7%ae%97%e7%ac%a6","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/989.html","title":{"rendered":"Laravel Eloquent\uff1a\u2018\u5728\u2019\u548c\u2018\u4e0d\u5728\u2019\u8fd0\u7b97\u7b26"},"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 Eloquent &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>where<\/code> &#26041;&#27861;&#26469;&#25191;&#34892;&#21508;&#31181;&#26597;&#35810;&#25805;&#20316;&#65292;&#21253;&#25324; <code>in<\/code> &#21644; <code>not in<\/code> &#36816;&#31639;&#31526;&#12290;&#36825;&#20004;&#20010;&#36816;&#31639;&#31526;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#26597;&#35810;&#32467;&#26524;&#20013;&#31579;&#36873;&#20986;&#29305;&#23450;&#30340;&#35760;&#24405;&#12290;<\/p>\n<h3>&#20351;&#29992; <code>whereIn<\/code> &#36816;&#31639;&#31526;<\/h3>\n<p><code>whereIn<\/code> &#36816;&#31639;&#31526;&#29992;&#20110;&#31579;&#36873;&#20986;&#22312;&#25351;&#23450;&#25968;&#32452;&#20013;&#30340;&#35760;&#24405;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; 'users' &#30340;&#27169;&#22411;&#65292;&#24182;&#19988;&#25105;&#20204;&#24819;&#35201;&#33719;&#21462;&#25152;&#26377;&#24180;&#40836;&#22312; 18 &#21040; 30 &#20043;&#38388;&#30340;&#29992;&#25143;&#12290;\n$users = User::whereIn('age', [18, 30])-&gt;get();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>whereIn<\/code> &#36816;&#31639;&#31526;&#20250;&#36820;&#22238;&#25152;&#26377; <code>age<\/code> &#23383;&#27573;&#20540;&#20026; 18 &#25110; 30 &#30340;&#29992;&#25143;&#12290;<\/p>\n<h3>&#20351;&#29992; <code>whereNotIn<\/code> &#36816;&#31639;&#31526;<\/h3>\n<p><code>whereNotIn<\/code> &#36816;&#31639;&#31526;&#29992;&#20110;&#31579;&#36873;&#20986;&#19981;&#22312;&#25351;&#23450;&#25968;&#32452;&#20013;&#30340;&#35760;&#24405;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; 'users' &#30340;&#27169;&#22411;&#65292;&#24182;&#19988;&#25105;&#20204;&#24819;&#35201;&#33719;&#21462;&#25152;&#26377;&#24180;&#40836;&#19981;&#22312; 18 &#21040; 30 &#20043;&#38388;&#30340;&#29992;&#25143;&#12290;\n$users = User::whereNotIn('age', [18, 30])-&gt;get();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>whereNotIn<\/code> &#36816;&#31639;&#31526;&#20250;&#36820;&#22238;&#25152;&#26377; <code>age<\/code> &#23383;&#27573;&#20540;&#19981;&#20026; 18 &#25110; 30 &#30340;&#29992;&#25143;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#19979;&#38754;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992; <code>whereIn<\/code> &#21644; <code>whereNotIn<\/code> &#36816;&#31639;&#31526;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppModelsUser;\n\n\/\/ &#33719;&#21462;&#25152;&#26377;&#24180;&#40836;&#22312; 25 &#21040; 40 &#20043;&#38388;&#30340;&#29992;&#25143;\n$youngUsers = User::whereIn('age', [25, 40])-&gt;get();\n\n\/\/ &#33719;&#21462;&#25152;&#26377;&#24180;&#40836;&#19981;&#22312; 25 &#21040; 40 &#20043;&#38388;&#30340;&#29992;&#25143;\n$oldUsers = User::whereNotIn('age', [25, 40])-&gt;get();\n\n\/\/ &#36755;&#20986;&#32467;&#26524;\ndd($youngUsers);\ndd($oldUsers);<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#31034;&#20363;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#29702;&#35299;&#22914;&#20309;&#22312; Laravel Eloquent &#20013;&#20351;&#29992; <code>whereIn<\/code> &#21644; <code>whereNotIn<\/code> &#36816;&#31639;&#31526;&#26469;&#36827;&#34892;&#22797;&#26434;&#30340;&#26597;&#35810;&#25805;&#20316;&#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>&#27010;&#35272;<\/h2><p>Laravel&#65292;&#20316;&#20026;PHP&#20013;&#26368;&#21463;&#27426;&#36814;&#30340;&#26694;&#26550;&#20043;&#19968;&#65292;&#25552;&#20379;&#20102;ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#21483;&#20570;Eloquent&#26469;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#12290;Eloquent&#20801;&#35768;&#24320;&#21457;&#20154;&#21592;&#29992;&#24178;&#20928;&#12289;&#27969;&#30021;&#30340;API&#32534;&#20889;&#25968;&#25454;&#24211;&#26597;&#35810;&#65292;&#21516;&#26102;&#20445;&#25345;&#21487;&#35835;&#24615;&#21644;&#31616;&#27905;&#24615;&#12290;&#22312;&#26597;&#35810;&#25968;&#25454;&#24211;&#26102;&#65292;&#19968;&#20010;&#24120;&#35265;&#30340;&#38656;&#27714;&#26159;&#22312;&#21015;&#20540;&#23646;&#20110;&#19968;&#32452;&#29305;&#23450;&#20540;&#30340;&#24773;&#20917;&#19979;&#36807;&#28388;&#32467;&#26524;&#65292;&#25110;&#32773;&#19981;&#23646;&#20110;&#36825;&#20123;&#20540;&#12290;&#36825;&#23601;&#26159;IN&#21644;NOT INSQL&#36816;&#31639;&#31526;&#21457;&#25381;&#20316;&#29992;&#30340;&#22320;&#26041;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034;&#22914;&#20309;&#20351;&#29992;&#36825;&#20123;&#36816;&#31639;&#31526;&#22312;Eloquent&#26597;&#35810;&#20013;&#36827;&#34892;&#21508;&#31181;&#31034;&#20363;&#25805;&#20316;&#12290;<\/p><h2>&#29702;&#35299; &#8220;IN&#8221; &#21644; &#8220;NOT IN&#8221; &#22312; SQL &#20013;&#30340;&#36816;&#31639;&#31526;&#12290;<\/h2><p>&#22312;&#28145;&#20837;&#25506;&#35752;Eloquent&#26102;&#65292;&#35753;&#25105;&#20204;&#20808;&#31616;&#35201;&#22238;&#39038;&#19968;&#19979;SQL&#20013;&#30340;&ldquo;IN&rdquo;&#21644;&ldquo;NOT IN&rdquo;&#36816;&#31639;&#31526;&#12290;&#8221;IN&#8221;&#36816;&#31639;&#31526;&#20801;&#35768;&#20320;&#22312;WHERE&#23376;&#21477;&#20013;&#25351;&#23450;&#22810;&#20010;&#20540;&#12290;&#23427;&#30456;&#24403;&#20110;&#22810;&#20010;&#25110;&#26465;&#20214;&#30340;&#31616;&#20889;&#24418;&#24335;&#12290;&#30456;&#21453;&#65292;&ldquo;NOT IN&rdquo;&#36816;&#31639;&#31526;&#29992;&#20110;&#25490;&#38500;&#20540;&#12290;<\/p><pre><code>SELECT * FROM table_name WHERE column_name IN (value1, value2, ...);\nSELECT * FROM table_name WHERE column_name NOT IN (value1, value2, ...);\n<\/code><\/pre><h2>&#22312;Eloquent&#26694;&#26550;&#20013;&#65292;&ldquo;IN&rdquo;&#20851;&#38190;&#23383;&#30340;&#22522;&#26412;&#29992;&#27861;&#22914;&#19979;&#65306;\n\n&#29992;&#20110;&#26597;&#35810;&#38598;&#21512;&#20013;&#30340;&#20803;&#32032;&#65306;&#24403;&#20320;&#38656;&#35201;&#26816;&#26597;&#19968;&#20010;&#38598;&#21512;&#65288;&#22914;&#25968;&#25454;&#24211;&#35760;&#24405;&#65289;&#26159;&#21542;&#21253;&#21547;&#29305;&#23450;&#30340;&#20540;&#26102;&#65292;&#21487;&#20197;&#20351;&#29992;&ldquo;IN&rdquo;&#20851;&#38190;&#23383;&#12290;\n$users = User::where(&#8216;status&#8217;, &#8216;active&#8217;)-&gt;get();\nif ($users-&gt;contains(&#8216;id&#8217;, 1)) {\n \/\/ &#29992;&#25143;ID&#20026;1&#30340;&#29992;&#25143;&#23384;&#22312;\n}\n\n&#19982;&#20851;&#31995;&#26041;&#27861;&#32467;&#21512;&#20351;&#29992;&#65306;&#22312;&#27169;&#22411;&#31867;&#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20851;&#31995;&#26041;&#27861;&#26469;&#23454;&#29616;&ldquo;IN&rdquo;&#30340;&#21151;&#33021;&#12290;\n$users = User::with([&#8216;roles&#8217; =&gt; function($query) use ($roleIds) {\n $query-&gt;whereIn(&#8216;id&#8217;, $roleIds);\n}])-&gt;get();\n\nforeach ($users as $user) {\n foreach ($user-&gt;roles as $role) {\n \/\/ &#22788;&#29702;&#35282;&#33394;&#20449;&#24687;\n }\n}\n\n&#20248;&#21270;&#24615;&#33021;&#65306;&#34429;&#28982;&ldquo;IN&rdquo;&#20851;&#38190;&#23383;&#33021;&#25552;&#39640;&#26597;&#35810;&#25928;&#29575;&#65292;&#20294;&#39057;&#32321;&#20351;&#29992;&#21487;&#33021;&#20250;&#23548;&#33268;&#24615;&#33021;&#38382;&#39064;&#12290;&#22240;&#27492;&#65292;&#22312;&#21487;&#33021;&#30340;&#24773;&#20917;&#19979;&#65292;&#23613;&#37327;&#36991;&#20813;&#22312;&#26597;&#35810;&#20013;&#20351;&#29992;&#36807;&#22810;&#30340;&ldquo;IN&rdquo;&#25805;&#20316;&#12290;\n\n&#27880;&#24847;SQL&#35821;&#27861;&#65306;&#30830;&#20445;&#20320;&#30340;&#20195;&#30721;&#31526;&#21512;SQL&#35821;&#21477;&#30340;&#26368;&#20339;&#23454;&#36341;&#65292;&#29305;&#21035;&#26159;&#20851;&#20110;&#20998;&#32452;&#21644;&#36830;&#25509;&#30340;&#35268;&#21017;&#12290;\n\n&#24076;&#26395;&#36825;&#20123;&#22522;&#26412;&#29992;&#27861;&#23545;&#20320;&#26377;&#25152;&#24110;&#21161;&#65281;&#22914;&#26524;&#26377;&#26356;&#22810;&#20855;&#20307;&#30340;&#38382;&#39064;&#25110;&#38656;&#35201;&#36827;&#19968;&#27493;&#35299;&#37322;&#65292;&#35831;&#38543;&#26102;&#21578;&#35785;&#25105;&#12290;<\/h2><p>Eloquent&#30340;Laravel&#25552;&#20379;&#20102;&#19968;&#20010;&#38750;&#24120;&#26041;&#20415;&#30340;&#26041;&#24335;&#26469;&#25805;&#20316;&#25968;&#25454;&#24211;&#12290;<code>whereIn<\/code>&#20351;&#29992;&ldquo;IN&rdquo;&#36816;&#31639;&#31526;&#26597;&#35810;&#30340;&#26041;&#27861;&#12290;&#31532;&#19968;&#20010;&#21442;&#25968;&#26159;&#21015;&#30340;&#21517;&#31216;&#65292;&#31532;&#20108;&#20010;&#21442;&#25968;&#26159;&#19968;&#20010;&#21253;&#21547;&#20320;&#24819;&#22312;&#32467;&#26524;&#20013;&#21253;&#25324;&#30340;&#20540;&#30340;&#25968;&#32452;&#12290;<\/p><pre><code>\/\/ Assume you have a 'Post' model for your 'posts' table.\n$posts = Post::whereIn('status', ['published', 'draft'])-&gt;get();\n<\/code><\/pre><p>&#36825;&#26465;&#35821;&#21477;&#32763;&#35793;&#20026;&ldquo;SELECT * FROM posts WHERE status IN (&#8216;published&#8217;, &#8216;draft&#8217;)&rdquo;&#12290;<code>get<\/code>&#26041;&#27861;&#20250;&#26816;&#32034;&#21040;&#21305;&#37197;&#30340;&#35760;&#24405;&#12290;<\/p><h2>&#22312;Eloquent&#20013;&#19982;&ldquo;NOT IN&rdquo;&#25805;&#20316;&#30456;&#20851;&#30340;&#24037;&#20316;&#12290;<\/h2><p>&#22312;Eloquent&#26597;&#35810;&#20013;&#65292;&ldquo;IN&rdquo;&#23545;&#24212;&#30340;&#21035;&#21517;&#26159;&ldquo;whereIn&rdquo;&#12290;<code>whereNotIn<\/code>&#26041;&#27861;&#65292;&#29992;&#20110;&#36807;&#28388;&#25351;&#23450;&#21015;&#20540;&#22312;&#32473;&#23450;&#25968;&#32452;&#20013;&#30340;&#35760;&#24405;&#12290;<\/p><pre><code>$users = User::whereNotIn('id', [1, 2, 3])-&gt;get();\n<\/code><\/pre><p>&#36825;&#23558;&#33719;&#21462;&#38500;ID&#20026;1&#12289;2&#25110;3&#30340;&#29992;&#25143;&#22806;&#30340;&#25152;&#26377;&#29992;&#25143;&#12290;<\/p><h2>&#39640;&#32423;&#29992;&#27861;<\/h2><p>&#29616;&#22312;&#25105;&#20204;&#24050;&#32463;&#35206;&#30422;&#20102;&#22522;&#30784;&#29992;&#27861;&#65292;&#25509;&#19979;&#26469;&#35753;&#25105;&#20204;&#30475;&#30475;&#19968;&#20123;&#39640;&#32423;&#20351;&#29992;&#31034;&#20363;&#12290;&#21487;&#38142;&#24335;&#26597;&#35810;&#21487;&#20197;&#36827;&#34892;&#22797;&#26434;&#30340;&#26465;&#20214;&#21028;&#26029;&#12290;<\/p><h3>&#22312;&#26597;&#35810;&#26465;&#20214;&#20013;&#32467;&#21512;&#20351;&#29992; &#8216;IN&#8217; &#21644; &#8216;NOT IN&#8217; &#19982;&#20854;&#20182;&#26465;&#20214;&#12290;<\/h3><p>Eloquent&#20801;&#35768;&#32452;&#21512;&#22810;&#20010;&#26465;&#20214;&#65292;&#20174;&#32780;&#21019;&#24314;&#31934;&#30830;&#30340;&#26597;&#35810;&#12290;<\/p><pre><code>$posts = Post::whereIn('status', ['published', 'archived'])\n           -&gt;whereNotIn('author_id', [10, 20])\n           -&gt;where('created_at', '&gt;', now()-&gt;subYear())\n           -&gt;get();\n<\/code><\/pre><h3>&#20351;&#29992;&ldquo;IN&rdquo;&#21644;&ldquo;NOT IN&rdquo;&#19982;&#20851;&#31995;&#30456;&#32467;&#21512;<\/h3><p>&#21160;&#20154;&#30340;&#20154;&#38469;&#20851;&#31995;&#20063;&#21487;&#20197;&#21033;&#29992;&ldquo;IN&rdquo;&#21644;&ldquo;NOT IN&rdquo;&#23376;&#21477;&#12290;&#20363;&#22914;&#65306;<\/p><pre><code>$users = User::with(['posts' =&gt; function ($query) {\n    $query-&gt;whereIn('status', ['published']);\n}])-&gt;get();\n<\/code><\/pre><h3>&#20351;&#29992;eloquent&#30340;when()&#26041;&#27861;&#36827;&#34892;&#21160;&#24577;&#8221;whereIn&#8221;&#25805;&#20316;<\/h3><p>&#26446;&#22885;&#32435;&#22810;&middot;&#36798;&middot;&#33452;&#22855;&#26377;&#19968;&#39318;&#35799;&#12290;<code>when<\/code>&#35813;&#26041;&#27861;&#25191;&#34892;&#26465;&#20214;&#26597;&#35810;&#12290;&#24403;&#24744;&#22522;&#20110;&#29992;&#25143;&#36755;&#20837;&#20855;&#26377;&#21160;&#24577;&#26465;&#20214;&#26102;&#65292;&#36825;&#38750;&#24120;&#26377;&#29992;&#12290;<\/p><pre><code>$status = request('status'); \/\/ Assume this comes from user input.\n$posts = Post::when($status, function ($query, $status) {\n             return $query-&gt;whereIn('status', $status);\n         })-&gt;get();\n<\/code><\/pre><h3>&#23376;&#26597;&#35810;&#21644;&ldquo;IN&rdquo;\/ &ldquo;NOT IN&rdquo;&#25805;&#20316;<\/h3><p>&#26356;&#22797;&#26434;&#30340;&#22330;&#26223;&#21487;&#33021;&#38656;&#35201;&#32467;&#21512;&#23376;&#26597;&#35810;&#20351;&#29992;&ldquo;IN&rdquo;&#25110;&ldquo;NOT IN&rdquo;&#23376;&#21477;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312;Laravel Eloquent&#20013;&#20351;&#29992;&#23376;&#26597;&#35810;&#19982;&#36825;&#20123;&#25805;&#20316;&#31526;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>$activeUserIds = User::select('id')-&gt;where('active', 1);\n$usersWithActivePosts = User::whereExists(function ($query) use ($activeUserIds) {\n                           $query-&gt;select(DB::raw(1))\n                                 -&gt;from('posts')\n                                 -&gt;whereRaw('posts.user_id = users.id')\n                                 -&gt;whereIn('posts.user_id', $activeUserIds);\n                        })-&gt;get();\n<\/code><\/pre><h2>&#29992;&#20363;<\/h2><p>&#29616;&#22312;&#65292;&#35753;&#25105;&#20204;&#25226;&#23398;&#21040;&#30340;&#19996;&#35199;&#24212;&#29992;&#21040;&#19968;&#20123;&#23454;&#38469;&#24773;&#22659;&#20013;&#65306;<\/p><h3>&#36807;&#28388;&#19968;&#20010;&#20135;&#21697;&#21015;&#34920;<\/h3><p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#30005;&#21830;&#24179;&#21488;&#65292;&#38656;&#35201;&#26681;&#25454;&#31867;&#21035;&#36873;&#25321;&#26469;&#26174;&#31034;&#20135;&#21697;&#12290;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&ldquo;IN&rdquo;&#36816;&#31639;&#31526;&#26469;&#36827;&#34892;&#31579;&#36873;&#65306;<\/p><pre><code>$categoryIds = [1, 2, 3]; \/\/ Categories selected by the user\n$products = Product::whereIn('category_id', $categoryIds)-&gt;get();\n<\/code><\/pre><h3>&#25490;&#38500;&#29305;&#23450;&#29992;&#25143;&#20174;&#35746;&#38405;&#21015;&#34920;&#20013;<\/h3><p>&#22312;&#21457;&#36865;&#26032;&#38395;&#37038;&#20214;&#26102;&#65292;&#25105;&#20204;&#21487;&#33021;&#20250;&#24076;&#26395;&#25490;&#38500;&#37027;&#20123;&#24050;&#36873;&#25321;&#36864;&#35746;&#30340;&#29992;&#25143;&#12290;<\/p><pre><code>$excludedUserIds = User::where('newsletter_opt_out', true)-&gt;pluck('id');\n$subscribers = User::whereNotIn('id', $excludedUserIds)-&gt;get();\n<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#36825;&#20010;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#25506;&#35752;&#20102;&#22914;&#20309;&#20351;&#29992;Laravel Eloquent&#20013;&#30340;&ldquo;IN&rdquo;&#21644;&ldquo;NOT IN&rdquo;&#36816;&#31639;&#31526;&#65292;&#20174;&#22522;&#30784;&#21040;&#26356;&#22797;&#26434;&#30340;&#21160;&#24577;&#26597;&#35810;&#12290;&#25105;&#20204;&#30475;&#21040;&#20102;&#36825;&#20123;&#36816;&#31639;&#31526;&#22914;&#20309;&#23481;&#26131;&#22320;&#34987;&#29992;&#26469;&#21019;&#24314;&#28789;&#27963;&#19988;&#39640;&#25928;&#30340;&#25968;&#25454;&#24211;&#26597;&#35810;&#65292;&#20174;&#32780;&#30830;&#20445;&#25105;&#20204;&#30340;&#24212;&#29992;&#31243;&#24207;&#36816;&#34892;&#39034;&#30021;&#12290;&#26080;&#35770;&#26159;&#36807;&#28388;&#32467;&#26524;&#36824;&#26159;&#25490;&#38500;&#29305;&#23450;&#35760;&#24405;&#65292;&ldquo;IN&rdquo;&#21644;&ldquo;NOT IN&rdquo;&#37117;&#26159;Eloquent&#24320;&#21457;&#20154;&#21592;&#30340;&#24517;&#22791;&#24037;&#20855;&#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 &#20013;&#65292;<code>in<\/code> &#21644; <code>not in<\/code> &#36816;&#31639;&#31526;&#29992;&#20110;&#26816;&#26597;&#25968;&#32452;&#20013;&#30340;&#26576;&#20010;&#20803;&#32032;&#26159;&#21542;&#23384;&#22312;&#20110;&#21478;&#19968;&#20010;&#25968;&#32452;&#20013;&#12290;&#36825;&#21487;&#20197;&#29992;&#26469;&#23454;&#29616;&#19968;&#20123;&#26377;&#36259;&#30340;&#36923;&#36753;&#65292;&#27604;&#22914;&#29992;&#25143;&#26159;&#21542;&#20026;&#29305;&#23450;&#35282;&#33394;&#30340;&#25104;&#21592;&#12290;<\/p>\n<h3>&#31034;&#20363;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>Users<\/code> &#30340;&#27169;&#22411;&#65292;&#23427;&#26377;&#23646;&#24615; <code>roles<\/code>&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateDatabaseEloquentModel;\n\nclass Users extends Model\n{\n    protected $fillable = ['name', 'email'];\n\n    public function roles()\n    {\n        return $this-&gt;belongsToMany('AppRoles');\n    }\n}<\/code><\/pre>\n<p>&#22914;&#26524;&#25105;&#20204;&#35201;&#26597;&#25214;&#20855;&#26377;&#20004;&#20010;&#29305;&#23450;&#35282;&#33394;&#30340;&#29992;&#25143;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#26597;&#35810;&#65306;<\/p>\n<pre><code class=\"language-php\">$users = User::whereHas('roles', function ($query) {\n    $query-&gt;whereIn('role_id', [2, 3]); \/\/ &#30830;&#20445;&#21482;&#36820;&#22238;&#35282;&#33394; ID &#20026; 2 &#25110; 3 &#30340;&#29992;&#25143;\n})-&gt;get();\n\nforeach ($users as $user) {\n    echo \"User: {$user-&gt;id}, Roles: \" . implode(', ', $user-&gt;roles-&gt;pluck('name'));\n    echo \"&lt;br&gt;\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65306;<\/p>\n<ul>\n<li>&#25105;&#20204;&#39318;&#20808;&#36890;&#36807; <code>whereHas<\/code> &#26041;&#27861;&#33719;&#21462;&#20855;&#26377;&#33267;&#23569;&#19968;&#20010;&#35282;&#33394;&#30340;&#35282;&#33394;&#12290;<\/li>\n<li>&#28982;&#21518;&#65292;&#25105;&#20204;&#22312; <code>roles<\/code> &#23646;&#24615;&#19978;&#24212;&#29992;&#20102;&#19968;&#20010; <code>whereIn<\/code> &#20851;&#32852;&#22120;&#65292;&#25351;&#23450;&#35282;&#33394;ID&#20026; 2 &#21644; 3&#12290;<\/li>\n<li>&#26368;&#32456;&#65292;&#25105;&#20204;&#20351;&#29992; <code>get()<\/code> &#26041;&#27861;&#33719;&#21462;&#25152;&#26377;&#21305;&#37197;&#30340;&#29992;&#25143;&#12290;<\/li>\n<\/ul>\n<h3>&#27880;&#24847;&#20107;&#39033;<\/h3>\n<ol>\n<li><strong>&#20851;&#31995;&#22411;&#25968;&#25454;&#24211;<\/strong>&#65306;&#36825;&#20123;&#25805;&#20316;&#22522;&#20110; Eloquent ORM&#65288;Eloquent &#27169;&#22411;&#65289;&#26469;&#22788;&#29702;&#20851;&#32852;&#20851;&#31995;&#12290;<\/li>\n<li><strong>&#25968;&#25454;&#39564;&#35777;<\/strong>&#65306;&#30830;&#20445; <code>$roles<\/code> &#23454;&#20307;&#27491;&#30830;&#22320;&#19982; <code>User<\/code> &#23454;&#20307;&#20851;&#32852;&#65292;&#24182;&#19988; <code>roles<\/code> &#23646;&#24615;&#26159;&#26377;&#25928;&#30340;&#12290;<\/li>\n<li><strong>&#23433;&#20840;&#32771;&#34385;<\/strong>&#65306;&#24403;&#22788;&#29702;&#25935;&#24863;&#20449;&#24687;&#26102;&#65292;&#35831;&#35880;&#24910;&#20351;&#29992; <code>whereIn<\/code> &#21644; <code>orWhereHas<\/code> &#26041;&#27861;&#12290;<\/li>\n<\/ol>\n<p>&#36825;&#20010;&#20363;&#23376;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Laravel &#20013;&#21033;&#29992; <code>in<\/code> &#21644; <code>not in<\/code> &#36816;&#31639;&#31526;&#36827;&#34892;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#12290;&#24076;&#26395;&#36825;&#23545;&#24744;&#26377;&#25152;&#24110;&#21161;&#65281;&#22914;&#26524;&#24744;&#38656;&#35201;&#36827;&#19968;&#27493;&#30340;&#24110;&#21161;&#25110;&#26377;&#20854;&#20182;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel Eloquent &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; where &#26041;&#27861;&#26469;&#25191;&#34892;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-989","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\/989","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=989"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=989"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=989"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}