{"id":982,"date":"2025-06-12T04:09:43","date_gmt":"2025-06-11T20:09:43","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/982.html"},"modified":"2025-06-12T04:09:43","modified_gmt":"2025-06-11T20:09:43","slug":"laravel-%e4%bc%98%e9%9b%85%ef%bc%9a%e5%9f%ba%e4%ba%8e%e5%85%b3%e8%81%94%e6%a8%a1%e5%9e%8b%e6%8e%92%e5%ba%8f%e7%bb%93%e6%9e%9c","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/982.html","title":{"rendered":"Laravel \u4f18\u96c5\uff1a\u57fa\u4e8e\u5173\u8054\u6a21\u578b\u6392\u5e8f\u7ed3\u679c"},"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;&#22914;&#26524;&#20320;&#24819;&#35201;&#26681;&#25454;&#20851;&#32852;&#27169;&#22411;&#30340;&#26576;&#20010;&#23383;&#27573;&#23545;&#26597;&#35810;&#32467;&#26524;&#36827;&#34892;&#25490;&#24207;&#65292;&#21487;&#20197;&#20351;&#29992; <code>with<\/code> &#26041;&#27861;&#26469;&#21152;&#36733;&#20851;&#32852;&#25968;&#25454;&#65292;&#24182;&#22312;&#26597;&#35810;&#20013;&#25351;&#23450;&#25490;&#24207;&#26465;&#20214;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#20195;&#30721;&#65306;<\/p>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010; <code>User<\/code> &#27169;&#22411;&#21644;&#19968;&#20010; <code>Post<\/code> &#27169;&#22411;&#65292;&#23427;&#20204;&#20043;&#38388;&#36890;&#36807;&#19968;&#20010; <code>posts<\/code> &#20851;&#32852;&#20851;&#31995;&#36827;&#34892;&#36830;&#25509;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ &#20551;&#35774; User &#21644; Post &#27169;&#22411;&#24050;&#32463;&#23450;&#20041;&#22909;&#20102;\n\n\/\/ &#33719;&#21462;&#25152;&#26377;&#29992;&#25143;&#65292;&#24182;&#25353;&#29031;&#27599;&#20010;&#29992;&#25143;&#30340;&#26368;&#26032;&#24086;&#23376;&#25968;&#37327;&#36827;&#34892;&#25490;&#24207;\n$users = User::with('posts')\n    -&gt;orderByRaw('COUNT(posts.id) DESC')\n    -&gt;get();\n\n\/\/ &#31034;&#20363;&#36755;&#20986;\nforeach ($users as $user) {\n    echo \"Username: {$user-&gt;name}n\";\n    echo \"Latest Post Title: {$user-&gt;posts[0]-&gt;title}nn\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#20351;&#29992;&#20102; <code>with<\/code> &#26041;&#27861;&#26469;&#21152;&#36733; <code>User<\/code> &#30340; <code>posts<\/code> &#20851;&#32852;&#25968;&#25454;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#20351;&#29992; <code>orderByRaw<\/code> &#26041;&#27861;&#26469;&#25351;&#23450;&#25353;&#27599;&#20010;&#29992;&#25143;&#30340;&#26368;&#26032;&#24086;&#23376;&#25968;&#37327;&#36827;&#34892;&#25490;&#24207;&#12290;<code>orderByRaw<\/code> &#26041;&#27861;&#25509;&#21463;&#19968;&#20010; SQL &#34920;&#36798;&#24335;&#20316;&#20026;&#21442;&#25968;&#65292;&#22240;&#27492;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#26500;&#24314;&#22797;&#26434;&#30340;&#25490;&#24207;&#26465;&#20214;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#20010;&#31034;&#20363;&#23545;&#20320;&#26377;&#24110;&#21161;&#65281;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>Laravel&#30340;Eloquent ORM&#26159;&#26694;&#26550;&#20013;&#30340;&#22522;&#30707;&#65292;&#25552;&#20379;&#20102;&#19968;&#20010;&#20248;&#38597;&#30340;ActiveRecord&#23454;&#29616;&#26469;&#22788;&#29702;&#19982;&#25968;&#25454;&#24211;&#30340;&#20851;&#31995;&#25968;&#25454;&#12290;&#23427;&#20801;&#35768;web&#24320;&#21457;&#32773;&#20197;&#20248;&#38597;&#21644;&#26131;&#29992;&#30340;&#26041;&#24335;&#31649;&#29702;&#20851;&#31995;&#25968;&#25454;&#12290;&#22312;&#38656;&#35201;&#25353;&#29305;&#23450;&#39034;&#24207;&#26174;&#31034;&#25968;&#25454;&#24211;&#35760;&#24405;&#26102;&#65292;&#25490;&#24207;&#30456;&#20851;&#27169;&#22411;&#25968;&#25454;&#33267;&#20851;&#37325;&#35201;&#12290;<\/p><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#22312;Laravel Eloquent&#20013;&#26681;&#25454;&#30456;&#20851;&#27169;&#22411;&#30340;&#23383;&#27573;&#23545;&#32467;&#26524;&#36827;&#34892;&#25490;&#24207;&#12290;&#25105;&#20204;&#23558;&#36890;&#36807;&#21508;&#31181;&#22330;&#26223;&#26469;&#23637;&#31034;&#22914;&#20309;&#22768;&#26126;&#27491;&#30830;&#30340;&#20851;&#31995;&#21644;&#21033;&#29992;Eloquent&#26041;&#27861;&#26469;&#25552;&#20379;&#24378;&#22823;&#30340;&#25490;&#24207;&#33021;&#21147;&#12290;<\/p><h2>&#29702;&#35299;&#20154;&#38469;&#20851;&#31995;&#30340;&#28145;&#24230;<\/h2><p>Laravel &#25903;&#25345;&#22810;&#31181;&#31867;&#22411;&#30340;&#20851;&#31995;&#65292;&#27491;&#30830;&#20351;&#29992;&#23427;&#20204;&#23545;&#20110;&#20174; Eloquent &#20013;&#26368;&#22823;&#21270;&#21033;&#29992;&#38750;&#24120;&#37325;&#35201;&#12290;&#22312;&#20856;&#22411;&#30340; MVC &#26550;&#26500;&#32467;&#26500;&#20013;&#65292;&#27169;&#22411;&#31867;&#20195;&#34920;&#25968;&#25454;&#24211;&#20013;&#30340;&#34920;&#65292;&#32780;&#20851;&#31995;&#21017;&#25552;&#20379;&#20102;&#19968;&#31181;&#36923;&#36753;&#19978;&#38142;&#25509;&#36825;&#20123;&#34920;&#30340;&#26041;&#27861;&#12290;<\/p><p>&#35753;&#25105;&#20204;&#20808;&#20197;&#29992;&#25143;&#21644;&#20182;&#20204;&#30340;&#21338;&#23458;&#24086;&#23376;&#20026;&#20363;&#24314;&#31435;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>UserModel - has many -&gt; PostModel\nPostModel - belongs to -&gt; UserModel\n<\/code><\/pre><p>&#29992;&#25143;&#21644;&#24086;&#23376;&#27169;&#22411;&#21487;&#33021;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p><pre><code>class User extends Model {\n    public function posts() {\n        return $this-&gt;hasMany(Post::class);\n    }\n}\n\nclass Post extends Model {\n    public function user() {\n        return $this-&gt;belongsTo(User::class);\n    }\n}\n<\/code><\/pre><p>&#29616;&#22312;&#65292;&#24819;&#35937;&#19968;&#19979;&#20320;&#24819;&#33719;&#21462;&#25152;&#26377;&#29992;&#25143;&#65292;&#24182;&#25353;&#20182;&#20204;&#26368;&#21518;&#19968;&#27425;&#21457;&#34920;&#24086;&#23376;&#30340;&#26085;&#26399;&#36827;&#34892;&#25490;&#24207;&#12290;&#20320;&#21487;&#20197;&#36825;&#26679;&#22788;&#29702;&#65306;<\/p><pre><code>$users = User::with('posts')-&gt;get()-&gt;sortBy(function($user) {\n    return $user-&gt;posts-&gt;max('created_at');\n});\n<\/code><\/pre><p>&#36825;&#26159;&#20010;&#19981;&#38169;&#30340;&#24320;&#22987;&#65292;&#20294;&#38656;&#35201;&#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462;&#32467;&#26524;&#21518;&#36827;&#34892;&#25490;&#24207;&#65292;&#36825;&#24182;&#19981;&#26159;&#26368;&#20339;&#20570;&#27861;&#65292;&#22240;&#20026;&#23427;&#20250;&#23548;&#33268;&#22823;&#25968;&#25454;&#38598;&#30340;&#20869;&#23384;&#21644;&#24615;&#33021;&#38382;&#39064;&#12290;&#26356;&#26377;&#25928;&#30340;&#26041;&#27861;&#26159;&#22312;&#26500;&#24314;&#26597;&#35810;&#26102;&#23558;&#20854;&#25918;&#22312;&#25968;&#25454;&#24211;&#23618;&#38754;&#36827;&#34892;&#25490;&#24207;&#12290;<\/p><h2>&#22788;&#29702;&#19968;&#23545;&#19968;&#20851;&#31995;&#21644;&#19968;&#23545;&#22810;&#20851;&#31995;&#12290;<\/h2><p>&#22312;&#25968;&#25454;&#24211;&#32423;&#21035;&#25490;&#24207;&#65292;&#25105;&#20204;&#38656;&#35201;&#20351;&#29992;&#21407;&#22987;&#30340;&#25968;&#25454;&#24211;&#26597;&#35810;&#12290;&#20026;&#27492;&#65292;&#25105;&#20204;&#21487;&#20197;&#21033;&#29992;Eloquent&#30340;&#39640;&#32423;&#26597;&#35810;&#26500;&#24314;&#33021;&#21147;&#36890;&#36807;&#20197;&#19979;&#26041;&#24335;&#65306;<code>join<\/code>&#26041;&#27861;&#12290;<\/p><pre><code>$users = User::select('users.*')\n            -&gt;join('posts', 'users.id', '=', 'posts.user_id')\n            -&gt;orderBy('posts.created_at', 'desc')\n            -&gt;get();\n<\/code><\/pre><p>&#22914;&#26524;&#27599;&#20010;&#29992;&#25143;&#21487;&#20197;&#26377;&#22810;&#20010;&#24086;&#23376;&#65292;&#37027;&#20040;&#19978;&#36848;&#20195;&#30721;&#21487;&#33021;&#20250;&#36820;&#22238;&#37325;&#22797;&#30340;&#29992;&#25143;&#26465;&#30446;&#12290;&#20026;&#20102;&#35299;&#20915;&#36825;&#20010;&#38382;&#39064;&#65292;&#20320;&#38656;&#35201;&#23545;&#32467;&#26524;&#36827;&#34892;&#20998;&#32452;&#65306;<\/p><pre><code>$users = User::select('users.*')\n            -&gt;join('posts', 'users.id', '=', 'posts.user_id')\n            -&gt;groupBy('users.id')\n            -&gt;orderBy('posts.created_at', 'desc')\n            -&gt;get();\n<\/code><\/pre><p>&#24212;&#24403;&#25351;&#20986;&#30340;&#26159;<code>groupBy<\/code>&#22312;&#36873;&#25321;&#21015;&#26102;&#21487;&#33021;&#20250;&#36935;&#21040;&#19968;&#20123;&#40635;&#28902;&#65292;&#22240;&#20026;SQL&#26631;&#20934;&#23545;&#20998;&#32452;&#26377;&#19981;&#21516;&#30340;&#35268;&#23450;&#65292;&#22240;&#27492;&#30830;&#20445;&#24744;&#36873;&#25321;&#30340;&#21015;&#19982;&#24744;&#30340;SQL&#29256;&#26412;&#21644;SQL&#35774;&#32622;&#20860;&#23481;&#26159;&#24456;&#37325;&#35201;&#30340;&#12290;<\/p><h2>&#22788;&#29702;&#22810;&#23545;&#22810;&#20851;&#31995;&#65288;Many-to-Many Relationships&#65289;<\/h2><p>&#29616;&#22312;&#32771;&#34385;&#22810;&#23545;&#22810;&#20851;&#31995;&#65292;&#20363;&#22914;&#29992;&#25143;&#21487;&#20197;&#23646;&#20110;&#22810;&#20010;&#22242;&#38431;&#65292;&#32780;&#19968;&#20010;&#22242;&#38431;&#21487;&#20197;&#26377;&#22810;&#20010;&#29992;&#25143;&#12290;&#22914;&#26524;&#25105;&#20204;&#24819;&#25353;&#26368;&#21518;&#21152;&#20837;&#30340;&#29992;&#25143;&#25490;&#24207;&#22242;&#38431;&#65292;&#24773;&#20917;&#20250;&#31245;&#24494;&#22797;&#26434;&#19968;&#20123;&#65292;&#22240;&#20026;&#25105;&#20204;&#36890;&#24120;&#20250;&#26377;&#19968;&#20010;.pivot&#34920;&#65288;&#36890;&#24120;&#31216;&#20026; pivottable&#65289;&#12290;<code>team_user<\/code>&#22312;&#20256;&#32479;&#30340;Laravel&#35774;&#32622;&#20013;&#12290;<\/p><pre><code>$teams = Team::select('teams.*')\n           -&gt;join('team_user', 'teams.id', '=', 'team_user.team_id')\n           -&gt;join('users', 'team_user.user_id', '=', 'users.id')\n           -&gt;orderBy('team_user.created_at', 'desc')\n           -&gt;get();\n<\/code><\/pre><p>&#22312;&#19968;&#23545;&#19968;&#20851;&#31995;&#30340;&#24773;&#20917;&#19979;&#65292;&#20063;&#38656;&#35201;&#23567;&#24515;&#36991;&#20813;&#37325;&#22797;&#26465;&#30446;&#65292;&#22240;&#20026;&#27599;&#20010;&#22242;&#38431;&#21487;&#33021;&#26377;&#22810;&#37325;&#20851;&#31995;&#12290;<\/p><h2>&#22788;&#29702;&#37325;&#22797;&#39033;&#20351;&#29992;&#20998;&#32452;<\/h2><p>&#20026;&#22788;&#29702;&#37325;&#22797;&#26465;&#30446;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&#12290;<code>distinct<\/code>&#19982;&#20043;&#19968;&#36215;<code>groupBy<\/code>&#24050;&#25910;&#21040;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>$teams = Team::select('teams.*')\n           -&gt;distinct()\n           -&gt;join('team_user', 'teams.id', '=', 'team_user.team_id')\n           -&gt;join('users', 'team_user.user_id', '=', 'users.id')\n           -&gt;groupBy('teams.id')\n           -&gt;orderBy('team_user.created_at', 'desc')\n           -&gt;get();\n<\/code><\/pre><p>Laravel&#20351;&#24471;&#22788;&#29702;&#36825;&#20123;&#24773;&#20917;&#21464;&#24471;&#26356;&#21152;&#30452;&#35266;&#65292;&#20294;&#35831;&#27880;&#24847;&#65292;&#36825;&#20123;&#26041;&#27861;&#21487;&#33021;&#20250;&#26377;&#24615;&#33021;&#24433;&#21709;&#65292;&#24182;&#19988;&#24212;&#35813;&#22312;&#20102;&#35299;&#24213;&#23618;&#25968;&#25454;&#24211;&#21644;&#34920;&#22823;&#23567;&#30340;&#21069;&#25552;&#19979;&#35880;&#24910;&#20351;&#29992;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>&#25490;&#24207;&#25968;&#25454;&#24211;&#32467;&#26524;&#22522;&#20110;&#30456;&#20851;&#27169;&#22411;&#20013;&#30340;&#21015;&#21487;&#20197;&#20351;&#29992;Laravel&#30340;Eloquent&#36731;&#26494;&#26377;&#25928;&#22320;&#23454;&#29616;&#12290;&#23454;&#36341;&#26159;&#25484;&#25569;&#36825;&#20123;&#27010;&#24565;&#30340;&#20851;&#38190;&#65292;&#38543;&#30528;&#24744;&#23545;&#21508;&#31181;&#31867;&#22411;&#20851;&#31995;&#30340;&#29087;&#24713;&#31243;&#24230;&#22686;&#21152;&#65292;&#26597;&#35810;&#20250;&#21464;&#24471;&#26356;&#21152;&#24378;&#22823;&#21644;&#39640;&#25928;&#12290;&#22312;&#36825;&#20221;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#24050;&#32463;&#20026;&#22312;&#30456;&#20851;&#27169;&#22411;&#19978;&#25490;&#24207;&#32467;&#26524;&#24314;&#31435;&#20102;&#22522;&#30784;&#12290;&#20687;&#35768;&#22810;&#32534;&#31243;&#38382;&#39064;&#19968;&#26679;&#65292;&#35299;&#20915;&#38382;&#39064;&#30340;&#26041;&#27861;&#26377;&#24456;&#22810;&#65292;&#26368;&#20339;&#26041;&#27861;&#21487;&#33021;&#21462;&#20915;&#20110;&#24212;&#29992;&#31243;&#24207;&#30340;&#20855;&#20307;&#38656;&#27714;&#12289;&#25968;&#25454;&#24211;&#32467;&#26500;&#20197;&#21450;&#24615;&#33021;&#32771;&#34385;&#22240;&#32032;&#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;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&#20851;&#32852;&#27169;&#22411;&#65288;associations&#65289;&#26469;&#23454;&#29616;&#23545;&#25968;&#25454;&#30340;&#25490;&#24207;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992; Laravel &#30340; Eloquent ORM &#26469;&#21019;&#24314;&#19968;&#20010;&#20851;&#32852;&#27169;&#22411;&#65292;&#24182;&#26681;&#25454;&#29305;&#23450;&#23383;&#27573;&#36827;&#34892;&#25490;&#24207;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#23450;&#20041;&#19968;&#20010;&#31616;&#21333;&#30340;&#20851;&#32852;&#27169;&#22411;&#31867;&#65292;&#35813;&#31867;&#23558;&#26377;&#19968;&#20010;&#21517;&#20026; <code>Order<\/code> &#30340;&#27169;&#22411;&#21644;&#19968;&#20010;&#21517;&#20026; <code>Product<\/code> &#30340;&#27169;&#22411;&#12290;&#25105;&#20204;&#23558;&#36890;&#36807;&#20851;&#32852; <code>Order<\/code> &#27169;&#22411;&#20013;&#30340; <code>product_id<\/code> &#23383;&#27573;&#19982; <code>Product<\/code> &#27169;&#22411;&#20013;&#30340; <code>id<\/code> &#23383;&#27573;&#36827;&#34892;&#20851;&#32852;&#12290;<\/p>\n<pre><code class=\"language-php\">use AppModelsOrder;\nuse AppModelsProduct;\n\nclass OrderModel extends Model {\n    public function product() {\n        return $this-&gt;belongsTo(Product::class, 'product_id');\n    }\n}<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#25105;&#20204;&#32534;&#20889;&#19968;&#20010;&#26597;&#35810;&#65292;&#36825;&#20010;&#26597;&#35810;&#20250;&#36820;&#22238;&#25152;&#26377;&#35746;&#21333;&#21450;&#20854;&#20851;&#32852;&#20135;&#21697;&#30340;&#35814;&#32454;&#20449;&#24687;&#12290;&#22312;&#36825;&#20010;&#26597;&#35810;&#20013;&#65292;&#25105;&#20204;&#23558;&#26681;&#25454; <code>order.status<\/code> &#21644; <code>product.price<\/code> &#36827;&#34892;&#25490;&#24207;&#12290;<\/p>\n<pre><code class=\"language-php\">$orders = OrderModel::with('product')\n            -&gt;orderBy('order.status', 'desc')\n            -&gt;orderBy('product.price', 'asc')\n            -&gt;get();<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;<code>$orders<\/code> &#23558;&#26159;&#19968;&#20010;&#25968;&#32452;&#65292;&#20854;&#20013;&#21253;&#21547;&#27599;&#20010;&#35746;&#21333;&#21450;&#20854;&#20851;&#32852;&#20135;&#21697;&#30340;&#20449;&#24687;&#12290;&#25105;&#20204;&#21487;&#20197;&#36890;&#36807;&#35775;&#38382; <code>$orders[0]<\/code> &#26469;&#26597;&#30475;&#31532;&#19968;&#20010;&#35746;&#21333;&#30340;&#35814;&#32454;&#20449;&#24687;&#65292;&#28982;&#21518;&#32487;&#32493;&#36941;&#21382;&#20854;&#20182;&#35746;&#21333;&#12290;<\/p>\n<pre><code class=\"language-php\">foreach ($orders as $order) {\n    echo \"Order: {$order-&gt;status}, Product Price: {$order-&gt;product-&gt;price}n\";\n}<\/code><\/pre>\n<p>&#36825;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#65292;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#28155;&#21152;&#26356;&#22810;&#30340;&#36923;&#36753;&#65292;&#27604;&#22914;&#36807;&#28388;&#29305;&#23450;&#30340;&#29366;&#24577;&#12289;&#20215;&#26684;&#33539;&#22260;&#31561;&#12290;&#22914;&#26524;&#20320;&#38656;&#35201;&#26356;&#35814;&#32454;&#30340;&#24110;&#21161;&#65292;&#35831;&#21578;&#35785;&#25105;&#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;&#22914;&#26524;&#20320;&#24819;&#35201;&#26681;&#25454;&#20851;&#32852;&#27169;&#22411;&#30340;&#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-982","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\/982","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=982"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=982"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=982"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}