{"id":984,"date":"2025-06-12T04:12:34","date_gmt":"2025-06-11T20:12:34","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/984.html"},"modified":"2025-06-12T04:12:34","modified_gmt":"2025-06-11T20:12:34","slug":"laravel-eloquent-%e5%a6%82%e4%bd%95%e6%a0%b9%e6%8d%ae%e5%a4%9a%e4%b8%aa%e5%88%97%e8%bf%9b%e8%a1%8c%e5%88%86%e7%bb%84","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/984.html","title":{"rendered":"Laravel + Eloquent: \u5982\u4f55\u6839\u636e\u591a\u4e2a\u5217\u8fdb\u884c\u5206\u7ec4"},"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 &#21644; Eloquent &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>groupBy<\/code> &#26041;&#27861;&#26469;&#26681;&#25454;&#22810;&#20010;&#21015;&#36827;&#34892;&#20998;&#32452;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#26681;&#25454;&#22810;&#20010;&#21015;&#65288;&#20363;&#22914; <code>category_id<\/code> &#21644; <code>created_at<\/code>&#65289;&#23545;&#25968;&#25454;&#36827;&#34892;&#20998;&#32452;&#12290;<\/p>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>products<\/code> &#30340;&#34920;&#65292;&#24182;&#19988;&#25105;&#20204;&#24819;&#35201;&#26681;&#25454; <code>category_id<\/code> &#21644; <code>created_at<\/code> &#36827;&#34892;&#20998;&#32452;&#65292;&#25105;&#20204;&#21487;&#20197;&#36825;&#26679;&#20570;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppModelsProduct;\n\n\/\/ &#26597;&#35810;&#25968;&#25454;&#24182;&#25353; category_id &#21644; created_at &#20998;&#32452;\n$groupedProducts = Product::select('category_id', 'created_at')\n    -&gt;groupBy(['category_id', 'created_at'])\n    -&gt;get();\n\nforeach ($groupedProducts as $group) {\n    echo \"Category ID: \" . $group-&gt;category_id . \"n\";\n    echo \"Created At: \" . $group-&gt;created_at-&gt;format('Y-m-d H:i:s') . \"n\";\n\n    \/\/ &#33719;&#21462;&#27599;&#20010;&#20998;&#31867;&#19979;&#30340;&#20135;&#21697;&#25968;&#37327;\n    $productCount = count($group);\n    echo \"Product Count: \" . $productCount . \"nn\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#23548;&#20837;&#20102; <code>Product<\/code> &#27169;&#22411;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#20351;&#29992; <code>select<\/code> &#26041;&#27861;&#36873;&#25321;&#38656;&#35201;&#30340;&#21015;&#65292;&#24182;&#20351;&#29992; <code>groupBy<\/code> &#26041;&#27861;&#26681;&#25454; <code>category_id<\/code> &#21644; <code>created_at<\/code> &#36827;&#34892;&#20998;&#32452;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#36941;&#21382;&#20998;&#32452;&#32467;&#26524;&#65292;&#24182;&#33719;&#21462;&#27599;&#20010;&#20998;&#31867;&#19979;&#30340;&#20135;&#21697;&#25968;&#37327;&#12290;<\/p>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#65292;&#27604;&#22914;&#28155;&#21152;&#32858;&#21512;&#20989;&#25968;&#65288;&#22914; <code>count<\/code>&#12289;<code>sum<\/code> &#31561;&#65289;&#65292;&#21487;&#20197;&#22312; <code>groupBy<\/code> &#26041;&#27861;&#20043;&#21518;&#28155;&#21152;&#30456;&#24212;&#30340; <code>having<\/code> &#23376;&#21477;&#25110;&#30452;&#25509;&#22312; <code>groupBy<\/code> &#26041;&#27861;&#21518;&#38754;&#28155;&#21152;&#32858;&#21512;&#20989;&#25968;&#12290;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-php\">$groupedProductsWithAggregation = Product::select('category_id', 'created_at', DB::raw('COUNT(*) AS product_count'))\n    -&gt;groupBy(['category_id', 'created_at'])\n    -&gt;having(DB::raw('SUM(product_count) &gt; 5'), true)\n    -&gt;get();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#28155;&#21152;&#20102;&#19968;&#20010;&#32858;&#21512;&#20989;&#25968; <code>COUNT(*)<\/code> &#26469;&#35745;&#31639;&#27599;&#20010;&#20998;&#31867;&#19979;&#30340;&#20135;&#21697;&#25968;&#37327;&#65292;&#24182;&#20351;&#29992; <code>having<\/code> &#23376;&#21477;&#36807;&#28388;&#20986;&#37027;&#20123;&#20135;&#21697;&#25968;&#37327;&#22823;&#20110; 5 &#30340;&#20998;&#31867;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#20010;&#31034;&#20363;&#33021;&#24110;&#21161;&#20320;&#22312; Laravel &#21644; Eloquent &#20013;&#26681;&#25454;&#22810;&#20010;&#21015;&#36827;&#34892;&#20998;&#32452;&#12290;&#22914;&#26524;&#20320;&#26377;&#26356;&#22810;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#65281;<\/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&#30340;Eloquent ORM&#25552;&#20379;&#20102;&#20415;&#25463;&#19988;&#28789;&#27963;&#30340;&#26041;&#24335;&#26469;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#12290;&#22312;&#22788;&#29702;&#25968;&#25454;&#26816;&#32034;&#21644;&#25805;&#20316;&#26102;&#65292;Eloquent&#25552;&#20379;&#20102;&#19968;&#31181;&#23454;&#29616;&#22797;&#26434;&#25805;&#20316;&#30340;&#26041;&#24335;&#65292;&#26080;&#38656;&#20184;&#20986;&#22826;&#22810;&#21162;&#21147;&#12290;&#20854;&#20013;&#19968;&#20010;&#24120;&#35265;&#30340;&#38656;&#27714;&#26159;&#36890;&#36807;&#22810;&#20010;&#21015;&#23545;&#25968;&#25454;&#36827;&#34892;&#20998;&#32452;&#65292;&#36825;&#23545;&#20110;&#25253;&#34920;&#12289;&#20998;&#26512;&#21644;&#24635;&#32467;&#38750;&#24120;&#26377;&#29992;&#12290;&#26412;&#25945;&#31243;&#23558;&#28145;&#20837;&#35762;&#35299;&#22914;&#20309;&#20351;&#29992;Eloquent&#36890;&#36807;&#22810;&#20010;&#21015;&#23545;&#25968;&#25454;&#36827;&#34892;&#20998;&#32452;&#65292;&#28085;&#30422;&#20174;&#22522;&#30784;&#21040;&#39640;&#32423;&#30340;&#21508;&#31181;&#31034;&#20363;&#12290;<\/p><h3>&#29702;&#35299;Eloquent&#20013;&#30340;&#20998;&#32452;&#65288;Group By&#65289;&#25805;&#20316;<\/h3><p>&#22312;&#28145;&#20837;&#20363;&#23376;&#20043;&#21069;&#65292;&#29702;&#35299;&#25968;&#25454;&#20998;&#32452;&#30340;&#27010;&#24565;&#33267;&#20851;&#37325;&#35201;&#12290;&#25968;&#25454;&#20998;&#32452;&#26159;&#19968;&#31181;&#23558;&#20855;&#26377;&#30456;&#21516;&#20540;&#30340;&#25351;&#23450;&#21015;&#20013;&#30340;&#34892;&#21512;&#24182;&#21040;&#27719;&#24635;&#34892;&#30340;&#26041;&#24335;&#12290;&#23427;&#36890;&#24120;&#19982;&#32858;&#21512;&#20989;&#25968;&#65288;&#22914;COUNT&#12289;MAX&#12289;MIN&#12289;SUM&#12289;AVG&#65289;&#19968;&#36215;&#20351;&#29992;&#65292;&#20197;&#23545;&#20998;&#32452;&#30340;&#25968;&#25454;&#25191;&#34892;&#25805;&#20316;&#12290;<\/p><h2>&#22522;&#26412;&#20998;&#31867;<\/h2><p>&#39318;&#20808;&#65292;&#35753;&#25105;&#20204;&#30475;&#30475;&#22914;&#20309;&#20351;&#29992;Eloquent&#36827;&#34892;&#31616;&#21333;&#30340;&#20998;&#32452;&#25805;&#20316;&#12290;&#20551;&#35774;&#26377;&#19968;&#20010;&#21517;&#20026;&#8217;sales&#8217;&#30340;&#34920;&#65292;&#35813;&#34920;&#21253;&#21547;&#8217;&#26085;&#26399;&#8217;&#12289;&#8217;&#20135;&#21697;ID&#8217;&#21644;&#8217;&#37329;&#39069;&#8217;&#31561;&#21015;&#12290;&#35201;&#25353;&#8217;&#20135;&#21697;ID&#8217;&#36827;&#34892;&#20998;&#32452;&#65306;<\/p><pre><code>$sales = Sale::selectRaw('product_id, SUM(amount) as total_sales')\n-&gt;groupBy('product_id')\n-&gt;get();\n<\/code><\/pre><p>&#35813;&#26597;&#35810;&#25353;&#20135;&#21697;ID&#20998;&#32452;&#65292;&#35745;&#31639;&#27599;&#20010;&#20135;&#21697;&#30340;&#24635;&#38144;&#21806;&#39069;&#12290;<\/p><h2>&#26681;&#25454;&#22810;&#20010;&#21015;&#36827;&#34892;&#20998;&#32452;&#12290;<\/h2><p>&#20026;&#20102;&#25353;&#22810;&#20010;&#21015;&#20998;&#32452;&#65292;&#21487;&#20197;&#20256;&#36882;&#22810;&#20010;&#21442;&#25968;&#21040;&#12290;<code>groupBy<\/code>&#26041;&#27861;&#12290;&#20363;&#22914;&#65292;&#25353;&ldquo;&#20135;&#21697;ID&rdquo;&#21644;&ldquo;&#26085;&#26399;&rdquo;&#23545;&#38144;&#21806;&#36827;&#34892;&#20998;&#32452;&#65306;<\/p><pre><code>$sales = Sale::selectRaw('product_id, date, SUM(amount) as total_sales')\n-&gt;groupBy('product_id', 'date')\n-&gt;get();\n<\/code><\/pre><p>&#36825;&#37324;&#26159;&#25353;&#20135;&#21697;ID&#21644;&#26085;&#26399;&#20998;&#32452;&#30340;&#38144;&#21806;&#25968;&#25454;&#65292;&#25552;&#20379;&#20102;&#26356;&#35814;&#32454;&#30340;&#38144;&#21806;&#25968;&#25454;&#20998;&#26512;&#12290;<\/p><h2>&#39640;&#32423;&#20998;&#32452;&#65292;&#24102;&#26377;HAVING&#12290;<\/h2><p>&#26377;&#26102;&#20505;&#65292;&#20320;&#21487;&#33021;&#38656;&#35201;&#26681;&#25454;&#26465;&#20214;&#36807;&#28388;&#32676;&#32452;&#12290;&#36825;&#23601;&#26159;where&#23376;&#21477;&#30340;&#29992;&#36884;&#25152;&#22312;&#12290;<code>having<\/code>&#26465;&#27454;&#24050;&#21040;&#65292;&#35831;&#21442;&#35265;&#20197;&#19979;&#31034;&#20363;&#65306;&#35201;&#26681;&#25454;&#26368;&#20302;&#24635;&#38144;&#21806;&#37329;&#39069;&#31579;&#36873;&#32452;&#21035;&#65306;<\/p><pre><code>$sales = Sale::selectRaw('product_id, SUM(amount) as total_sales')\n-&gt;groupBy('product_id')\n-&gt;having('total_sales', '&gt;', 1000)\n-&gt;get();\n<\/code><\/pre><p>&#36825;&#20010;&#26597;&#35810;&#21482;&#36820;&#22238;&#24635;&#38144;&#21806;&#39069;&#36229;&#36807;1000&#30340;&#32452;&#12290;&#36825;&#31867;&#20284;&#20110;&#19968;&#20010;WHERE&#26465;&#20214;&#65292;&#20294;&#26159;&#22312;&#20998;&#32452;&#21518;&#24212;&#29992;&#12290;<\/p><h2>&#26681;&#25454;&#20851;&#31995;&#21015;&#36827;&#34892;&#20998;&#32452;<\/h2><p>&#22312;&#38656;&#35201;&#26681;&#25454;&#30456;&#20851;&#27169;&#22411;&#30340;&#26576;&#19968;&#21015;&#36827;&#34892;&#20998;&#32452;&#30340;&#25968;&#25454;&#22330;&#26223;&#19979;&#65292;&#21487;&#20197;&#20351;&#29992;&#36830;&#25509;&#65288;joins&#65289;&#12290;&#20551;&#35774;&lsquo;products&rsquo;&#34920;&#26377;&#19968;&#20010;&#21517;&#20026;&lsquo;category_id&rsquo;&#30340;&#23383;&#27573;&#65292;&#19988;&#20320;&#24819;&#25353;&#20135;&#21697;&#31867;&#21035;&#23545;&#38144;&#21806;&#25968;&#25454;&#36827;&#34892;&#20998;&#32452;&#65306;<\/p><pre><code>$sales = Sale::selectRaw('category_id, SUM(amount) as total_sales')\n-&gt;join('products', 'sales.product_id', '=', 'products.id')\n-&gt;groupBy('products.category_id')\n-&gt;get();\n<\/code><\/pre><p>&#36825;&#20010;&#26597;&#35810;&#36830;&#25509;&#20102; &#8216;sales&#8217; &#21644; &#8216;products&#8217; &#34920;&#65292;&#24182;&#25353;&#20135;&#21697;&#31867;&#21035;&#23545;&#38144;&#21806;&#36827;&#34892;&#20998;&#32452;&#12290;<\/p><h2>&#22797;&#26434;&#20998;&#32452;&#19982;&#21407;&#22987;&#34920;&#36798;&#24335;<\/h2><p>&#23545;&#20110;&#26356;&#22797;&#26434;&#30340;&#20998;&#32452;&#22330;&#26223;&#65292;&#21487;&#20197;&#20351;&#29992;&#21407;&#22987;&#34920;&#36798;&#24335;&#12290;&#20551;&#35774;&#20320;&#24819;&#25353;&#26085;&#26399;&#30340;&#24180;&#20221;&#21644;&#26376;&#20221;&#23545;&#38144;&#21806;&#36827;&#34892;&#20998;&#32452;&#65306;<\/p><pre><code>$sales = Sale::selectRaw('YEAR(date) as year, MONTH(date) as month, SUM(amount) as total_sales')\n-&gt;groupByRaw('YEAR(date), MONTH(date)')\n-&gt;get();\n<\/code><\/pre><p>&#35813;&#26597;&#35810;&#25353;&#24180;&#20221;&#21644;&#26376;&#20221;&#23545;&#38144;&#21806;&#36827;&#34892;&#20998;&#32452;&#65292;&#20197;&#20102;&#35299;&#24180;&#24230;&#21508;&#26376;&#30340;&#38144;&#21806;&#36235;&#21183;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>Laravel&#30340;Eloquent&#20351;&#24471;&#36890;&#36807;&#22810;&#20010;&#23383;&#27573;&#36827;&#34892;&#25968;&#25454;&#20998;&#32452;&#21464;&#24471;&#23481;&#26131;&#19988;&#39640;&#25928;&#65292;&#36825;&#26377;&#21161;&#20110;&#25191;&#34892;&#22797;&#26434;&#30340;&#25968;&#25454;&#26816;&#32034;&#21644;&#25805;&#20316;&#12290;&#36890;&#36807;&#26412;&#25945;&#31243;&#35752;&#35770;&#30340;&#25216;&#26415;&#65292;&#20320;&#21487;&#20197;&#29992;&#26368;&#23569;&#30340;&#20195;&#30721;&#25552;&#21462;&#26377;&#24847;&#20041;&#30340;&#25968;&#25454;&#27934;&#23519;&#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 &#21644; Eloquent &#26159;&#26500;&#24314;&#22522;&#20110; PHP &#30340; Web &#24212;&#29992;&#31243;&#24207;&#30340;&#24378;&#22823;&#26694;&#26550;&#12290;&#35201;&#20351;&#29992; Laravel &#19982; Eloquent &#36827;&#34892;&#20998;&#32452;&#25805;&#20316;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; SQL &#26597;&#35810;&#26469;&#23450;&#20041;&#20320;&#30340;&#25968;&#25454;&#27169;&#22411;&#65292;&#24182;&#36890;&#36807;&#20851;&#32852;&#20851;&#31995;&#21644; Eloquent &#31867;&#22411;&#30340;&#26597;&#35810;&#23454;&#29616;&#20998;&#32452;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#29992;&#25143;&#34920; <code>users<\/code>&#65292;&#20854;&#20013;&#21253;&#21547;&#20004;&#20010;&#23383;&#27573;&#65306;<code>id<\/code>&#65288;&#20027;&#38190;&#65289;&#21644; <code>groups<\/code>&#65288;&#19968;&#20010;&#23383;&#31526;&#20018;&#21015;&#34920;&#65289;&#12290;&#25105;&#20204;&#38656;&#35201;&#23545;&#36825;&#20123;&#29992;&#25143;&#25353;&#29031; <code>groups<\/code> &#21015;&#36827;&#34892;&#20998;&#32452;&#24182;&#33719;&#21462;&#27599;&#20010;&#32452;&#30340;&#25968;&#37327;&#12290;&#19979;&#38754;&#26159;&#22914;&#20309;&#23454;&#29616;&#36825;&#19968;&#30446;&#26631;&#30340;&#26041;&#27861;&#65306;<\/p>\n<ol>\n<li>&#39318;&#20808;&#65292;&#30830;&#20445;&#23433;&#35013;&#20102; Laravel 5.8 &#25110;&#26356;&#39640;&#29256;&#26412;&#12290;<\/li>\n<li>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Laravel &#27169;&#26495;&#25991;&#20214;&#65288;&#20363;&#22914; <code>grouped_users.php<\/code>)&#65292;&#23558;&#20197;&#19979;&#20195;&#30721;&#31896;&#36148;&#21040;&#35813;&#25991;&#20214;&#20013;&#65306;\n<pre><code class=\"language-php\">\n&lt;?php<\/code><\/pre><\/li>\n<\/ol>\n<p>namespace AppHttpControllers;<\/p>\n<p>use IlluminateHttpRequest;\nuse AppModelsUser;<\/p>\n<p>class GroupedUsersController extends Controller\n{\npublic function index()\n{\n\/\/ &#20998;&#32452;&#20989;&#25968;\n$groupByGroups = User::with(&#8216;groups&#8217;)\n-&gt;groupBy(&#8216;groups&#8217;);<\/p>\n<pre><code>    return view('grouped-users', [\n        'groupedUsers' =&gt; $groupByGroups,\n    ]);\n}<\/code><\/pre>\n<p>}<\/p>\n<pre><code>\n\n3. &#22312;&#25511;&#21046;&#22120;&#20013;&#30340; `index` &#26041;&#27861;&#20013;&#65292;&#35843;&#29992; `User::with('groups')` &#26469;&#33719;&#21462;&#29992;&#25143;&#30340;&#20851;&#32852;&#20449;&#24687;&#65292;&#21253;&#25324;&#20182;&#20204;&#25152;&#23646;&#30340;&#25152;&#26377; `groups`&#12290;&#28982;&#21518;&#65292;&#35843;&#29992; `groupBy('groups')` &#20989;&#25968;&#65292;&#23558;&#29992;&#25143;&#25353; `groups` &#21015;&#36827;&#34892;&#20998;&#32452;&#12290;\n\n4. &#29616;&#22312;&#65292;&#24403;&#20320;&#35775;&#38382; `\/grouped-users` &#36335;&#30001;&#26102;&#65292;&#23558;&#30475;&#21040;&#19968;&#20010;&#35270;&#22270;&#65292;&#20854;&#20013;&#21253;&#21547;&#20102;&#20998;&#32452;&#21518;&#30340;&#29992;&#25143;&#21015;&#34920;&#12290;&#27599;&#26465;&#35760;&#24405;&#37117;&#26174;&#31034;&#20102;&#19968;&#20010;&#26631;&#39064;&#65292;&#26631;&#39064;&#26159;&#29992;&#25143;&#30340;&#21517;&#23383;&#65292;&#26049;&#36793;&#26377;&#23545;&#24212;&#20182;&#20204;&#30340; `groups` &#21015;&#12290;\n\n### &#27880;&#24847;&#20107;&#39033;\n\n- **&#25968;&#25454;&#24211;&#35774;&#35745;**&#65306;&#22312;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#35831;&#30830;&#20445;&#20320;&#24050;&#32463;&#27491;&#30830;&#22320;&#35774;&#32622;&#21644;&#31649;&#29702;&#25968;&#25454;&#24211;&#34920;&#32467;&#26500;&#12290;\n- **&#20998;&#32452;&#36923;&#36753;**&#65306;&#26681;&#25454;&#38656;&#35201;&#35843;&#25972;&#20998;&#32452;&#36923;&#36753;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#21482;&#23545;&#29305;&#23450;&#30340; `groups` &#21015;&#24863;&#20852;&#36259;&#65292;&#21487;&#20197;&#20462;&#25913; `groupBy()` &#20989;&#25968;&#20013;&#30340;&#26465;&#20214;&#12290;\n- **&#24615;&#33021;&#32771;&#34385;**&#65306;&#23545;&#20110;&#22823;&#37327;&#25968;&#25454;&#65292;&#36825;&#21487;&#33021;&#20250;&#23548;&#33268;&#24615;&#33021;&#38382;&#39064;&#12290;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#65292;&#24212;&#20248;&#21270;&#20998;&#32452;&#36923;&#36753;&#21644;&#26597;&#35810;&#31574;&#30053;&#65292;&#20943;&#23569;&#19981;&#24517;&#35201;&#30340;&#35745;&#31639;&#12290;\n\n&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#22312; Laravel + Eloquent &#20013;&#26681;&#25454;&#22810;&#20010;&#21015;&#36827;&#34892;&#20998;&#32452;&#12290;&#24076;&#26395;&#36825;&#20010;&#20363;&#23376;&#33021;&#24110;&#21161;&#20320;&#29702;&#35299;&#22914;&#20309;&#26377;&#25928;&#22320;&#21033;&#29992; Laravel &#21644; Eloquent &#24037;&#20855;&#26469;&#35299;&#20915;&#22797;&#26434;&#30340;&#25968;&#25454;&#22788;&#29702;&#38382;&#39064;&#12290;<\/code><\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#21644; Eloquent &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; groupBy &#26041;&#27861;&#26469;&#26681;..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-984","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\/984","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=984"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=984"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=984"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=984"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}