{"id":985,"date":"2025-06-12T04:14:02","date_gmt":"2025-06-11T20:14:02","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/985.html"},"modified":"2025-06-12T04:14:02","modified_gmt":"2025-06-11T20:14:02","slug":"%e5%9c%a8-eloquent-%e4%b8%ad%e4%bd%bf%e7%94%a8%e8%a1%a8%e5%88%ab%e5%90%8d%ef%bc%9a%e5%ae%9e%e7%94%a8%e6%8c%87%e5%8d%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/985.html","title":{"rendered":"\u5728 Eloquent \u4e2d\u4f7f\u7528\u8868\u522b\u540d\uff1a\u5b9e\u7528\u6307\u5357"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#26631;&#39064;&#65306;&#22312; Eloquent &#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#65306;&#23454;&#29992;&#25351;&#21335;<\/p>\n<p>&#22312; Laravel &#26694;&#26550;&#20013;&#65292;Eloquent &#26159;&#19968;&#20010;&#38750;&#24120;&#24378;&#22823;&#30340; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#24037;&#20855;&#65292;&#23427;&#31616;&#21270;&#20102;&#25968;&#25454;&#24211;&#25805;&#20316;&#12290;&#28982;&#32780;&#65292;&#26377;&#26102;&#20505;&#25105;&#20204;&#21487;&#33021;&#38656;&#35201;&#20351;&#29992;&#19981;&#21516;&#30340;&#34920;&#26469;&#34920;&#31034;&#21516;&#19968;&#20010;&#23454;&#20307;&#65292;&#20363;&#22914;&#19981;&#21516;&#30340;&#25968;&#25454;&#28304;&#25110;&#19981;&#21516;&#30340;&#25968;&#25454;&#24211;&#32467;&#26500;&#12290;&#36825;&#26102;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&#34920;&#21035;&#21517;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p>\n<p>&#34920;&#21035;&#21517;&#21487;&#20197;&#35753;&#20320;&#22312;&#26597;&#35810;&#20013;&#26356;&#28165;&#26224;&#22320;&#34920;&#36798;&#20320;&#30340;&#24847;&#22270;&#65292;&#21516;&#26102;&#20063;&#21487;&#20197;&#36991;&#20813;&#34920;&#21517;&#20914;&#31361;&#30340;&#38382;&#39064;&#12290;&#19979;&#38754;&#25105;&#23558;&#35814;&#32454;&#20171;&#32461;&#22914;&#20309;&#22312; Eloquent &#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#12290;<\/p>\n<h3>1. &#21019;&#24314;&#27169;&#22411;<\/h3>\n<p>&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#21019;&#24314;&#20004;&#20010;&#27169;&#22411;&#65292;&#20998;&#21035;&#20195;&#34920;&#19981;&#21516;&#30340;&#23454;&#20307;&#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 $table = 'users';\n}\n\n\/\/ App\/Models\/Order.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass Order extends Model\n{\n    protected $table = 'orders';\n}<\/code><\/pre>\n<h3>2. &#20351;&#29992;&#34920;&#21035;&#21517;<\/h3>\n<p>&#25509;&#19979;&#26469;&#65292;&#25105;&#20204;&#22312;&#26597;&#35810;&#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#26469;&#34920;&#31034;&#19981;&#21516;&#30340;&#23454;&#20307;&#12290;<\/p>\n<pre><code class=\"language-php\">use AppModelsUser;\nuse AppModelsOrder;\n\n$usersWithOrders = User::with('orders')-&gt;get();\n\nforeach ($usersWithOrders as $user) {\n    echo \"User ID: {$user-&gt;id}, Name: {$user-&gt;name}n\";\n    foreach ($user-&gt;orders as $order) {\n        echo \"Order ID: {$order-&gt;id}, Product: {$order-&gt;product}n\";\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#20351;&#29992; <code>with<\/code> &#26041;&#27861;&#26469;&#20851;&#32852; <code>Order<\/code> &#27169;&#22411;&#65292;&#24182;&#36890;&#36807;&#34920;&#21035;&#21517; <code>orders<\/code> &#26469;&#34920;&#31034; <code>Order<\/code> &#34920;&#12290;&#36825;&#26679;&#65292;&#25105;&#20204;&#22312;&#26597;&#35810;&#32467;&#26524;&#20013;&#23601;&#21487;&#20197;&#30452;&#25509;&#35775;&#38382; <code>Order<\/code> &#27169;&#22411;&#30340;&#25968;&#25454;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Eloquent &#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse AppModelsUser;\nuse AppModelsOrder;\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n    public function index()\n    {\n        \/\/ &#20351;&#29992;&#34920;&#21035;&#21517;&#33719;&#21462;&#29992;&#25143;&#21644;&#35746;&#21333;\n        $usersWithOrders = User::with('orders')-&gt;get();\n\n        \/\/ &#36941;&#21382;&#29992;&#25143;&#24182;&#25171;&#21360;&#29992;&#25143;&#20449;&#24687;&#21450;&#20854;&#35746;&#21333;\n        foreach ($usersWithOrders as $user) {\n            echo \"User ID: {$user-&gt;id}, Name: {$user-&gt;name}n\";\n            foreach ($user-&gt;orders as $order) {\n                echo \"Order ID: {$order-&gt;id}, Product: {$order-&gt;product}n\";\n            }\n        }\n\n        return view('users.index', ['users' =&gt; $usersWithOrders]);\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010; <code>UserController<\/code> &#25511;&#21046;&#22120;&#65292;&#24182;&#22312; <code>index<\/code> &#26041;&#27861;&#20013;&#20351;&#29992; <code>with<\/code> &#26041;&#27861;&#26469;&#20851;&#32852; <code>Order<\/code> &#27169;&#22411;&#65292;&#24182;&#36890;&#36807;&#34920;&#21035;&#21517; <code>orders<\/code> &#26469;&#34920;&#31034; <code>Order<\/code> &#34920;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#23558;&#26597;&#35810;&#32467;&#26524;&#20256;&#36882;&#32473;&#35270;&#22270;&#36827;&#34892;&#26174;&#31034;&#12290;<\/p>\n<p>&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#22312; Eloquent &#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#26469;&#31649;&#29702;&#22797;&#26434;&#30340;&#25968;&#25454;&#24211;&#32467;&#26500;&#21644;&#26597;&#35810;&#36923;&#36753;&#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;&#19968;&#20010;&#24378;&#22823;&#30340;&#24037;&#20855;&#65292;&#29992;&#20110;&#20197;&#20248;&#38597;&#21644;&#34920;&#36798;&#24615;&#30340;&#26041;&#24335;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#12290;Eloquent&#20801;&#35768;&#24320;&#21457;&#20154;&#21592;&#23558;&#25968;&#25454;&#24211;&#35760;&#24405;&#35270;&#20026;&#23545;&#35937;&#65292;&#31616;&#21270;&#20102;&#25191;&#34892;&#21019;&#24314;&#12289;&#35835;&#21462;&#12289;&#26356;&#26032;&#21644;&#21024;&#38500;&#65288;CRUD&#65289;&#25805;&#20316;&#30340;&#20219;&#21153;&#12290;&#22312;&#26412;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034;&#20351;&#29992;&#34920;&#21035;&#21517;&#22312;Eloquent&#20013;&#30340;&#20351;&#29992;&#65292;&#36825;&#22312;&#22788;&#29702;&#28041;&#21450;&#22810;&#20010;&#36830;&#25509;&#25110;&#38656;&#35201;&#22810;&#27425;&#24341;&#29992;&#21516;&#19968;&#24352;&#34920;&#30340;&#22797;&#26434;&#26597;&#35810;&#26102;&#29305;&#21035;&#26377;&#29992;&#12290;<\/p><p>&#22312;&#36827;&#20837;&#20855;&#20307;&#20363;&#23376;&#20043;&#21069;&#65292;&#35753;&#25105;&#20204;&#20808;&#22238;&#39038;&#19968;&#19979;SQL&#20013;&#30340;&#21035;&#21517;&#26159;&#20160;&#20040;&#12290;&#21035;&#21517;&#26159;&#25351;&#22312;&#26597;&#35810;&#20013;&#20026;&#34920;&#25110;&#21015;&#20020;&#26102;&#20998;&#37197;&#30340;&#21517;&#31216;&#12290;&#21035;&#21517;&#26377;&#21161;&#20110;&#20351;&#26597;&#35810;&#26356;&#26131;&#35835;&#65292;&#24182;&#38450;&#27490;&#22312;&#36830;&#25509;&#34920;&#26102;&#22240;&#21015;&#21517;&#20914;&#31361;&#32780;&#20986;&#29616;&#38382;&#39064;&#12290;&#22312;&#21407;&#22987;SQL&#20013;&#65292;&#21035;&#21517;&#20351;&#29992;AS&#20851;&#38190;&#23383;&#23450;&#20041;&#65292;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p><pre><code>SELECT u.id, u.name FROM users AS u;<\/code><\/pre><p>&#22312;Eloquent&#20013;&#65292;&#21035;&#21517;&#21270;&#36807;&#31243;&#19982;&#24120;&#35268;&#26377;&#25152;&#19981;&#21516;&#65292;&#36890;&#24120;&#38656;&#35201;&#32467;&#21512;&#27169;&#22411;&#27010;&#24565;&#21644;&#21407;&#22987;&#26597;&#35810;&#26041;&#27861;&#12290;&#25105;&#20204;&#23558;&#35752;&#35770;&#22312;&#21738;&#20123;&#22330;&#26223;&#19979;&#34920;&#21035;&#21517;&#21464;&#24471;&#24517;&#35201;&#12290;<\/p><h2>&#22312;SQL&#20013;&#65292;aliasing&#21333;&#34920;&#36890;&#24120;&#29992;&#20110;&#31616;&#21270;&#26597;&#35810;&#34920;&#36798;&#24335;&#25110;&#25552;&#39640;&#21487;&#35835;&#24615;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#21517;&#20026;&ldquo;orders&rdquo;&#30340;&#34920;&#65292;&#20320;&#21487;&#20197;&#23558;&#20854;&#21629;&#21517;&#20026;&ldquo;order_details&rdquo;&#20197;&#20415;&#20110;&#25551;&#36848;&#65306;\nSELECT * FROM orders AS order_details;\n&#36825;&#37324;&#65292;&ldquo;AS&rdquo;&#20851;&#38190;&#23383;&#34987;&#29992;&#26469;&#20026;&#34920;&#28155;&#21152;&#21035;&#21517;&ldquo;order_details&rdquo;&#12290;&#36825;&#26679;&#20570;&#30340;&#22909;&#22788;&#26159;&#21487;&#20197;&#36991;&#20813;&#20351;&#29992;&#20840;&#31216;&#26469;&#34920;&#31034;&#34920;&#65292;&#20174;&#32780;&#20943;&#23569;&#36755;&#20837;&#30340;&#22797;&#26434;&#24230;&#21644;&#38169;&#35823;&#29575;&#12290;\n&#21478;&#22806;&#65292;&#22312;&#26576;&#20123;&#25968;&#25454;&#24211;&#31995;&#32479;&#20013;&#65288;&#22914;MySQL&#65289;&#65292;&#20320;&#20063;&#21487;&#20197;&#30452;&#25509;&#20351;&#29992;&#34920;&#21517;&#20316;&#20026;&#21035;&#21517;&#65292;&#32780;&#19981;&#38656;&#35201;&#39069;&#22806;&#30340;&ldquo;AS&rdquo;&#20851;&#38190;&#23383;&#12290;&#20363;&#22914;&#65306;\nSELECT * FROM orders AS o;\n&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&ldquo;o&rdquo;&#23601;&#26159;&#21035;&#21517;&#65292;&#20294;&#38656;&#35201;&#27880;&#24847;&#30340;&#26159;&#65292;&#36825;&#31181;&#20889;&#27861;&#21487;&#33021;&#20250;&#23548;&#33268;&#19968;&#20123;&#28508;&#22312;&#30340;&#38382;&#39064;&#65292;&#27604;&#22914;&#21487;&#33021;&#19982;&#24050;&#23384;&#22312;&#30340;&#21464;&#37327;&#21517;&#31216;&#20914;&#31361;&#65292;&#25152;&#20197;&#26368;&#22909;&#36824;&#26159;&#29992;&#26356;&#26126;&#30830;&#30340;&#21035;&#21517;&#12290;<\/h2><p>&#22312;&#20351;&#29992;Eloquent&#20889;&#26597;&#35810;&#26102;&#65292;&#36890;&#24120;&#19981;&#38656;&#35201;&#32463;&#24120;&#21035;&#21517;&#34920;&#65292;&#22240;&#20026;&#34920;&#21517;&#36890;&#24120;&#26159;&#21807;&#19968;&#30340;&#12290;&#28982;&#32780;&#65292;&#22312;&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;&#20351;&#29992;&#21035;&#21517;&#21487;&#20197;&#20351;&#26597;&#35810;&#26356;&#28165;&#26224;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992;Eloquent&#30340;raw&#26041;&#27861;&#26469;&#21035;&#21517;&#34920;&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>$users = DB::table('users as u')\n    -&gt;select('u.id', 'u.name')\n    -&gt;where('u.active', 1)\n    -&gt;get();\n<\/code><\/pre><p>&#22312;&#19978;&#36848;&#20363;&#23376;&#20013;&#65292;&#34920;users&#34987;&#21035;&#21517;&#20026;u&#65292;&#22240;&#27492;&#21487;&#20197;&#22312;&#26597;&#35810;&#30340;&#25972;&#20010;&#36807;&#31243;&#20013;&#24341;&#29992;&#35813;&#34920;&#12290;<\/p><h2>&#22330;&#26223;2&#65306;&#20351;&#29992;&#21035;&#21517;&#30340;&#33258;&#36830;&#25509;<\/h2><p>&#33258;&#36830;&#25509;&#26159;&#19968;&#31181;&#34920;&#19982;&#20854;&#33258;&#36523;&#30340;&#36830;&#25509;&#65292;&#36825;&#22312;&#38656;&#35201;&#27604;&#36739;&#21516;&#19968;&#24352;&#34920;&#20013;&#30340;&#34892;&#26102;&#38750;&#24120;&#26377;&#29992;&#12290;&#22312;Eloquent&#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#21035;&#21517;&#26469;&#21019;&#24314;&#33258;&#36830;&#25509;&#65306;<\/p><pre><code>$subordinates = DB::table('employees as manager')\n    -&gt;join('employees as staff', 'manager.id', '=', 'staff.manager_id')\n    -&gt;select('manager.name as manager_name', 'staff.name as staff_name')\n    -&gt;get();\n<\/code><\/pre><p>&#22312;&#19978;&#36848;&#24773;&#20917;&#19979;&#65292;&#25105;&#20204;&#24050;&#32463;&#20026;&#21516;&#19968;&#20010;&#21592;&#24037;&#34920;&#36827;&#34892;&#20102;&#21035;&#21517;&#22788;&#29702;&#65292;&#20197;&#20415;&#27491;&#30830;&#22320;&#25191;&#34892;&#33258;&#36830;&#25509;&#25805;&#20316;&#12290;<\/p><h2>&#24773;&#26223;&#19977;&#65306;&#22810;&#21035;&#21517;&#30340;&#22797;&#26434;&#26597;&#35810;<\/h2><p>&#24403;&#26597;&#35810;&#28041;&#21450;&#22810;&#20010;&#36830;&#25509;&#26102;&#65292;&#20026;&#20102;&#21306;&#20998;&#19981;&#21516;&#30340;&#34920;&#24182;&#30830;&#20445;&#26597;&#35810;&#30340;&#28165;&#26224;&#24615;&#21644;&#20934;&#30830;&#24615;&#65292;&#26377;&#24517;&#35201;&#20026;&#23427;&#20204;&#21629;&#21517;&#12290;&#35753;&#25105;&#20204;&#26469;&#30475;&#19968;&#20010;&#21253;&#21547;&#22810;&#20010;&#34920;&#21644;&#21035;&#21517;&#30340;&#26356;&#22797;&#26434;&#31034;&#20363;&#65306;<\/p><pre><code>$query = AppModelsUser::query()\n    -&gt;from('users as u')\n    -&gt;leftJoin('posts as p', 'u.id', '=', 'p.user_id')\n    -&gt;leftJoin('comments as c', 'p.id', '=', 'c.post_id')\n    -&gt;select('u.name', 'p.title', 'c.body')\n    -&gt;get();\n<\/code><\/pre><p>&#22312;&#36825;&#20010;&#22797;&#26434;&#30340;&#26597;&#35810;&#20013;&#65292;&#29992;&#25143;&#12289;&#24086;&#23376;&#21644;&#35780;&#35770;&#37117;&#34987;&#21035;&#21517;&#21270;&#20102;&#65292;&#36825;&#20351;&#24471;&#25105;&#20204;&#21487;&#20197;&#36991;&#20813;&#22312;&#36830;&#25509;&#26465;&#20214;&#20043;&#38388;&#21457;&#29983;&#21629;&#21517;&#20914;&#31361;&#65292;&#24182;&#33021;&#22815;&#21306;&#20998;&#36873;&#25321;&#30340;&#21015;&#12290;<\/p><h2>&#22312;&#26597;&#35810;&#33539;&#22260;&#20013;&#20351;&#29992;&#21035;&#21517;<\/h2><p>Eloquent&#30340;&#26597;&#35810;&#33539;&#22260;&#20801;&#35768;&#24744;&#23450;&#20041;&#19968;&#32452;&#24120;&#35265;&#30340;&#26597;&#35810;&#32422;&#26463;&#65292;&#36825;&#20123;&#32422;&#26463;&#21487;&#20197;&#22312;&#25972;&#20010;&#24212;&#29992;&#20013;&#34987;&#37325;&#22797;&#20351;&#29992;&#12290;&#24403;&#22312;&#23616;&#37096;&#33539;&#22260;&#20869;&#20351;&#29992;&#34920;&#21035;&#21517;&#26102;&#65292;&#35831;&#30830;&#20445;&#35813;&#33539;&#22260;&#36981;&#24490;&#23558;&#22312;&#35843;&#29992;&#26102;&#20351;&#29992;&#30340;&#21035;&#21517;&#21270;&#65306;<\/p><pre><code>use IlluminateDatabaseEloquentModel;\n\nclass User extends Model\n{\n    public function scopeWithActivePosts($query)\n    {\n        $query-&gt;from('users as u')\n            -&gt;leftJoin('posts as p', 'u.id', '=', 'p.user_id')\n            -&gt;where('p.active', 1);\n    }\n}\n\n\/\/ Usage:\n$activeUsers = User::withActivePosts()-&gt;get();\n<\/code><\/pre><p>&#27880;&#24847;&#22312;&#33539;&#22260;&#20869;&#30340;&#21035;&#21517;&#19982;&#26597;&#35810;&#20013;&#30340;&#31216;&#21628;&#20043;&#38388;&#30340;&#19968;&#33268;&#24615;&#12290;<\/p><h2>&#32771;&#34385;&#22240;&#32032;&#21644;&#26368;&#20339;&#23454;&#36341;<\/h2><p>&#34429;&#28982;&#34920;&#21035;&#21517;&#21487;&#20197;&#26497;&#22823;&#22320;&#25552;&#39640;&#26597;&#35810;&#30340;&#21487;&#35835;&#24615;&#21644;&#28789;&#27963;&#24615;&#65292;&#20294;&#20173;&#38656;&#36981;&#24490;&#19968;&#20123;&#26368;&#20339;&#23454;&#36341;&#65306;<\/p><p>&#25042;&#21152;&#36733;&#65306;&#24403;&#20351;&#29992;Eloquent&#30340;&#20851;&#32852;&#21152;&#36733;&#21151;&#33021;&#26102;&#65292;&#20363;&#22914;<code>with()<\/code>&#35831;&#35880;&#24910;&#25805;&#20316;&#65292;&#22240;&#20026;&#34920;&#21035;&#21517;&#21487;&#33021;&#19981;&#20250;&#33258;&#21160;&#24212;&#29992;&#20110;&#30456;&#20851;&#30340;&#27169;&#22411;&#26597;&#35810;&#12290;<\/p><p>&#21629;&#21517;&#20914;&#31361;&#65306;&#27880;&#24847;&#22312;&#36873;&#25321;&#20174;&#36830;&#25509;&#34920;&#20013;&#30340;&#21015;&#26102;&#65292;&#21487;&#33021;&#23384;&#22312;&#30340;&#28508;&#22312;&#21629;&#21517;&#20914;&#31361;&#12290;<\/p><p>&#28165;&#26224;&#65306;&#36873;&#25321;&#26377;&#24847;&#20041;&#30340;&#21035;&#21517;&#21517;&#20197;&#20445;&#25345;SQL&#26597;&#35810;&#30340;&#21487;&#35835;&#24615;&#12290;<\/p><p>&#19968;&#33268;&#24615;&#65306;&#22312;&#25972;&#20010;&#26597;&#35810;&#20013;&#22987;&#32456;&#20351;&#29992;&#21035;&#21517;&#65292;&#20197;&#36991;&#20813;&#28151;&#28102;&#12290;<\/p><h2>&#26368;&#21518;&#30340;&#35805;<\/h2><p>&#20351;&#29992;Eloquent&#20013;&#30340;&#34920;&#21035;&#21517;&#21487;&#20197;&#31616;&#21270;&#26597;&#35810;&#26500;&#24314;&#36807;&#31243;&#65292;&#25552;&#39640;&#21487;&#35835;&#24615;&#21644;&#38450;&#27490;&#22797;&#26434;&#30340;&#26597;&#35810;&#20914;&#31361;&#12290;&#36890;&#36807;&#19968;&#31995;&#21015;&#31034;&#20363;&#65292;&#20174;&#31616;&#21333;&#30340;&#34920;&#21035;&#21517;&#21040;&#39640;&#32423;&#30340;&#33258;&#36830;&#25509;&#21644;&#26597;&#35810;&#33539;&#22260;&#65292;&#20320;&#29616;&#22312;&#25484;&#25569;&#20102;&#26377;&#25928;&#21033;&#29992;&#34920;&#21035;&#21517;&#36827;&#34892;Eloquent&#26597;&#35810;&#30340;&#30693;&#35782;&#12290;<\/p><p>&#35760;&#24471;&#65292;&#34429;&#28982;Eloquent&#25277;&#35937;&#20102;&#35768;&#22810;SQL&#20132;&#20114;&#30340;&#22797;&#26434;&#24615;&#65292;&#20294;&#20173;&#20801;&#35768;&#36890;&#36807;raw&#26041;&#27861;&#21644;&#34920;&#36798;&#24335;&#23454;&#29616;&#31934;&#32454;&#25511;&#21046;&#65292;&#20174;&#32780;&#22312;ORM&#19982;&#32431;SQL&#19990;&#30028;&#20043;&#38388;&#25552;&#20379;&#26368;&#20339;&#20307;&#39564;&#12290;&#26681;&#25454;&#26412;&#25351;&#21335;&#30340;&#27010;&#24565;&#21644;&#31034;&#20363;&#65292;&#20320;&#24212;&#35813;&#23545;&#20309;&#26102;&#20197;&#21450;&#22914;&#20309;&#22312;&#22522;&#20110;Eloquent&#30340;Laravel&#24212;&#29992;&#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#26377;&#25166;&#23454;&#30340;&#29702;&#35299;&#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>Eloquent &#26159; Laravel &#30340; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#24211;&#65292;&#23427;&#25552;&#20379;&#20102;&#19968;&#31181;&#31616;&#27905;&#30340;&#26041;&#24335;&#26469;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#12290;&#34920;&#21035;&#21517;&#26159;&#19968;&#31181;&#38750;&#24120;&#26377;&#29992;&#30340;&#29305;&#24615;&#65292;&#21487;&#20197;&#35753;&#20320;&#30340; SQL &#26597;&#35810;&#26356;&#21152;&#28789;&#27963;&#21644;&#26131;&#20110;&#29702;&#35299;&#12290;<\/p>\n<h3>&#20351;&#29992;&#34920;&#21035;&#21517;&#30340;&#22909;&#22788;<\/h3>\n<ul>\n<li><strong>&#31616;&#21270;&#26597;&#35810;<\/strong>&#65306;&#20351;&#29992;&#34920;&#21035;&#21517;&#21487;&#20197;&#20351;&#22797;&#26434;&#30340;&#26597;&#35810;&#21464;&#24471;&#31616;&#21333;&#26126;&#20102;&#12290;<\/li>\n<li><strong>&#25552;&#39640;&#24615;&#33021;<\/strong>&#65306;&#24403;&#22810;&#20010;&#34920;&#20851;&#32852;&#22312;&#19968;&#36215;&#26102;&#65292;&#36890;&#36807;&#20351;&#29992;&#34920;&#21035;&#21517;&#65292;&#21487;&#20197;&#22312;&#19968;&#23450;&#31243;&#24230;&#19978;&#20943;&#23569; SQL &#35821;&#21477;&#30340;&#22797;&#26434;&#24615;&#65292;&#20174;&#32780;&#25552;&#39640;&#24615;&#33021;&#12290;<\/li>\n<li><strong>&#22686;&#24378;&#28789;&#27963;&#24615;<\/strong>&#65306;&#22312;&#38656;&#35201;&#26102;&#65292;&#20320;&#21487;&#20197;&#38543;&#26102;&#26356;&#25913;&#34920;&#21035;&#21517;&#65292;&#36825;&#20351;&#24471;&#24212;&#29992;&#20855;&#26377;&#33391;&#22909;&#30340;&#25193;&#23637;&#24615;&#21644;&#21487;&#32500;&#25252;&#24615;&#12290;<\/li>\n<\/ul>\n<h3>&#22914;&#20309;&#22312; Eloquent &#20013;&#21019;&#24314;&#34920;&#21035;&#21517;<\/h3>\n<ol>\n<li>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#24050;&#32463;&#23433;&#35013;&#20102; Eloquent&#65292;&#24182;&#19988;&#22312;&#39033;&#30446;&#20013;&#35774;&#32622;&#20102;&#27491;&#30830;&#30340;&#21629;&#21517;&#31354;&#38388;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#34920;&#21035;&#21517;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$table-&gt;useTable('old_table_name');<\/code><\/pre>\n<p>&#36825;&#20010;&#21629;&#20196;&#20250;&#23558;&#24403;&#21069;&#20351;&#29992;&#30340;&#34920;&#21517;&#26367;&#25442;&#20026; <code>old_table_name<\/code>&#12290;&#22914;&#26524;&#20320;&#24819;&#35201;&#20462;&#25913;&#20854;&#20182;&#34920;&#30340;&#21517;&#23383;&#65292;&#35831;&#26681;&#25454;&#23454;&#38469;&#24773;&#20917;&#36827;&#34892;&#30456;&#24212;&#30340;&#35843;&#25972;&#12290;<\/p>\n<ol start=\"3\">\n<li>&#22312;&#26032;&#30340;&#34920;&#21517;&#21518;&#38754;&#28155;&#21152;&#20882;&#21495;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$table-&gt;as('new_table_name')-&gt;table($table-&gt;getTable());<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>$table-&gt;getTable()<\/code> &#36820;&#22238;&#20102;&#21407;&#22987;&#34920;&#30340;&#21517;&#31216;&#12290;&#25105;&#20204;&#23558;&#36825;&#20010;&#36820;&#22238;&#20540;&#36171;&#32473; <code>$new_table_name<\/code>&#65292;&#20351;&#20854;&#25104;&#20026;&#26032;&#34920;&#30340;&#21517;&#31216;&#12290;<\/p>\n<ol start=\"4\">\n<li>&#30830;&#20445;&#27491;&#30830;&#22320;&#20351;&#29992;&#34920;&#21035;&#21517;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$users = User::with('roles')-&gt;where('id', $userId)-&gt;first();\n\/\/ &#25110;&#32773;&#26356;&#31616;&#21333;&#30340;&#65306;\n$user = User::find($userId);\n$user-&gt;roles;<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>Users<\/code> &#30340;&#27169;&#22411;&#65292;&#25105;&#20204;&#38656;&#35201;&#20174;&#21478;&#19968;&#20010;&#21517;&#20026; <code>Roles<\/code> &#30340;&#27169;&#22411;&#33719;&#21462;&#29992;&#25143;&#30340;&#25152;&#26377;&#35282;&#33394;&#20449;&#24687;&#12290;<\/p>\n<pre><code class=\"language-php\">use AppModelsUser;\n\npublic function roles()\n{\n    return $this-&gt;belongsToMany(Role::class, 'role_user')\n        -&gt;using(UserRole::class)\n        -&gt;withPivot('is_admin');\n}<\/code><\/pre>\n<p>&#20026;&#20102;&#20174; <code>User<\/code> &#27169;&#22411;&#30340;&#23454;&#20363;&#20013;&#26816;&#32034; <code>Roles<\/code> &#27169;&#22411;&#20013;&#30340;&#25152;&#26377;&#29992;&#25143;&#30340;&#35282;&#33394;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-php\">$user = User::find($userId);\n\nforeach ($user-&gt;roles as $role) {\n    \/\/ &#20551;&#35774; role-&gt;name &#33719;&#21462;&#21040;&#30340;&#26159;&#35282;&#33394;&#21517;&#31216;\n    echo $role-&gt;name . \"n\";\n}<\/code><\/pre>\n<p>&#20197;&#19978;&#23601;&#26159;&#22914;&#20309;&#22312; Eloquent &#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#30340;&#22522;&#26412;&#27493;&#39588;&#12290;&#36825;&#31181;&#26041;&#27861;&#26377;&#21161;&#20110;&#25552;&#39640;&#20195;&#30721;&#30340;&#28165;&#26224;&#24230;&#21644;&#21487;&#35835;&#24615;&#65292;&#21516;&#26102;&#20063;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#26410;&#26469;&#30340;&#29256;&#26412;&#21319;&#32423;&#20013;&#36731;&#26494;&#25913;&#21464;&#34920;&#21517;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#26631;&#39064;&#65306;&#22312; Eloquent &#20013;&#20351;&#29992;&#34920;&#21035;&#21517;&#65306;&#23454;&#29992;&#25351;&#21335; &#038;..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-985","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\/985","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=985"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=985"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=985"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}