{"id":1004,"date":"2025-06-12T04:39:47","date_gmt":"2025-06-11T20:39:47","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/1004.html"},"modified":"2025-06-12T04:39:47","modified_gmt":"2025-06-11T20:39:47","slug":"%e4%bb%80%e4%b9%88%e6%98%aflaravel-eloquent%e4%b8%ad%e7%9a%84%e6%9e%a2%e8%bd%b4%e8%a1%a8%ef%bc%9a%e9%80%9a%e8%bf%87%e7%a4%ba%e4%be%8b%e8%a7%a3%e9%87%8a","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1004.html","title":{"rendered":"\u4ec0\u4e48\u662fLaravel Eloquent\u4e2d\u7684\u67a2\u8f74\u8868\uff1a\u901a\u8fc7\u793a\u4f8b\u89e3\u91ca"},"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>Laravel Eloquent &#26159; Laravel &#26694;&#26550;&#20013;&#29992;&#20110;&#25968;&#25454;&#24211;&#25805;&#20316;&#30340;&#19968;&#20010;&#24378;&#22823;&#24037;&#20855;&#12290;&#23427;&#25552;&#20379;&#20102;&#19968;&#31181;&#31616;&#21333;&#19988;&#30452;&#35266;&#30340;&#26041;&#24335;&#26469;&#22788;&#29702;&#20851;&#31995;&#25968;&#25454;&#12290;&#20854;&#20013;&#19968;&#20010;&#37325;&#35201;&#30340;&#27010;&#24565;&#26159;&ldquo;&#26530;&#36724;&#34920;&rdquo;&#65292;&#23427;&#26159;&#29992;&#26469;&#34920;&#31034;&#22810;&#23545;&#22810;&#20851;&#31995;&#30340;&#25968;&#25454;&#32467;&#26500;&#12290;<\/p>\n<h3>&#20160;&#20040;&#26159;&#26530;&#36724;&#34920;&#65311;<\/h3>\n<p>&#26530;&#36724;&#34920;&#26159;&#19968;&#31181;&#20013;&#38388;&#34920;&#65292;&#23427;&#23384;&#20648;&#20102;&#20004;&#20010;&#23454;&#20307;&#20043;&#38388;&#30340;&#20851;&#32852;&#20449;&#24687;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#23398;&#29983;&#34920;&#21644;&#19968;&#20010;&#35838;&#31243;&#34920;&#65292;&#23427;&#20204;&#20043;&#38388;&#23384;&#22312;&#22810;&#23545;&#22810;&#30340;&#20851;&#31995;&#65288;&#21363;&#19968;&#20010;&#23398;&#29983;&#21487;&#20197;&#21442;&#21152;&#22810;&#20010;&#35838;&#31243;&#65292;&#32780;&#19968;&#20010;&#35838;&#31243;&#20063;&#21487;&#20197;&#26377;&#22810;&#20010;&#23398;&#29983;&#65289;&#12290;&#20026;&#20102;&#34920;&#31034;&#36825;&#31181;&#20851;&#31995;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#20013;&#38388;&#34920;&#26469;&#23384;&#20648;&#36825;&#20123;&#20851;&#32852;&#20449;&#24687;&#12290;<\/p>\n<h3>&#31034;&#20363;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#20004;&#20010;&#23454;&#20307;&#65306;<code>Student<\/code> &#21644; <code>Course<\/code>&#12290;&#23427;&#20204;&#20043;&#38388;&#23384;&#22312;&#22810;&#23545;&#22810;&#30340;&#20851;&#31995;&#12290;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#27493;&#39588;&#26469;&#21019;&#24314;&#19968;&#20010;&#26530;&#36724;&#34920;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#23450;&#20041;&#27169;&#22411;<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#23450;&#20041; <code>Student<\/code> &#21644; <code>Course<\/code> &#27169;&#22411;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Models\/Student.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\nuse IlluminateDatabaseEloquentRelationsHasManyThrough;\n\nclass Student extends Model\n{\n   public function courses()\n   {\n       return $this-&gt;hasManyThrough(Course::class, Enrollment::class);\n   }\n}\n\n\/\/ app\/Models\/Course.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\nuse IlluminateDatabaseEloquentRelationsHasManyThrough;\n\nclass Course extends Model\n{\n   public function students()\n   {\n       return $this-&gt;hasManyThrough(Student::class, Enrollment::class);\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#23450;&#20041;&#20013;&#38388;&#34920;<\/strong>&#65306;\n&#28982;&#21518;&#65292;&#25105;&#20204;&#38656;&#35201;&#23450;&#20041;&#19968;&#20010;&#20013;&#38388;&#34920; <code>Enrollment<\/code> &#26469;&#23384;&#20648;&#23398;&#29983;&#30340;&#35838;&#31243;&#20449;&#24687;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Models\/Enrollment.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\nuse IlluminateDatabaseEloquentRelationsbelongsTo;\n\nclass Enrollment extends Model\n{\n   public function student()\n   {\n       return $this-&gt;belongsTo(Student::class);\n   }\n\n   public function course()\n   {\n       return $this-&gt;belongsTo(Course::class);\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#26597;&#35810;&#25968;&#25454;<\/strong>&#65306;\n&#26368;&#21518;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992; Eloquent &#26597;&#35810;&#26469;&#33719;&#21462;&#23398;&#29983;&#30340;&#35838;&#31243;&#20449;&#24687;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ &#33719;&#21462;&#25152;&#26377;&#23398;&#29983;&#21450;&#20854;&#25152;&#36873;&#30340;&#35838;&#31243;\n$students = Student::with('courses')-&gt;get();\n\nforeach ($students as $student) {\n   echo \"Student ID: {$student-&gt;id}, Name: {$student-&gt;name}n\";\n   foreach ($student-&gt;courses as $course) {\n       echo \"  Course ID: {$course-&gt;id}, Name: {$course-&gt;name}n\";\n   }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;&#21517;&#20026; <code>Enrollment<\/code> &#30340;&#20013;&#38388;&#34920;&#65292;&#24182;&#20351;&#29992; <code>HasManyThrough<\/code> &#20851;&#31995;&#23558; <code>Student<\/code> &#21644; <code>Course<\/code> &#27169;&#22411;&#36830;&#25509;&#36215;&#26469;&#12290;&#36825;&#26679;&#65292;&#25105;&#20204;&#23601;&#21487;&#20197;&#36731;&#26494;&#22320;&#33719;&#21462;&#23398;&#29983;&#21450;&#20854;&#25152;&#36873;&#30340;&#35838;&#31243;&#20449;&#24687;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#20010;&#31034;&#20363;&#33021;&#24110;&#21161;&#20320;&#29702;&#35299; Laravel Eloquent &#20013;&#26530;&#36724;&#34920;&#30340;&#27010;&#24565;&#21644;&#29992;&#27861;&#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>pivot tables&#22312;Laravel&#30340;Eloquent ORM&#20013;&#20316;&#20026;&#35768;&#22810;&#23545;&#35768;&#22810;&#20851;&#31995;&#30340;&#19968;&#20010;&#20013;&#38388;&#20214;&#12290;&#24403;&#20851;&#31995;&#22826;&#22797;&#26434;&#65292;&#19981;&#33021;&#36890;&#36807;&#19968;&#20010;&#34920;&#26469;&#23450;&#20041;&#26102;&#65292;&#20182;&#20204;&#34987;&#29992;&#26469;&#20351;&#29992;pivot table&#12290;pivot table&#25345;&#26377;&#20004;&#20010;&#20854;&#20182;&#34920;&#30340;&#22806;&#38190;&#65292;&#20174;&#32780;&#26377;&#25928;&#22320;&#23558;&#23427;&#20204;&#36830;&#25509;&#22312;&#19968;&#36215;&#20197;&#34920;&#31034;&#20851;&#31995;&#12290;<\/p><p>&#22312;Laravel&#20013;&#65292;&#20351;&#29992;Eloquent&#22788;&#29702;&#22810;&#23545;&#22810;&#20851;&#31995;&#38750;&#24120;&#31616;&#21333;&#65292;&#25552;&#20379;&#20102;&#31616;&#21333;&#30340;&#26041;&#27861;&#26469;&#26816;&#32034;&#21644;&#26356;&#26032;&#30456;&#20851;&#27169;&#22411;&#30340;&#25968;&#25454;&#12290;&#26412;&#25945;&#31243;&#26088;&#22312;&#35299;&#37322;pivot&#34920;&#30340;&#27010;&#24565;&#21450;&#20854;&#22312;Laravel&#26694;&#26550;&#20013;&#30340;&#20351;&#29992;&#65292;&#36890;&#36807;&#23454;&#38469;&#20363;&#23376;&#36827;&#34892;&#35828;&#26126;&#12290;<\/p><h3>&#29702;&#35299;&#22810;&#23545;&#22810;&#20851;&#31995;<\/h3><p>&#26631;&#20934;&#30340;&#22810;&#23545;&#22810;&#20851;&#31995;&#28041;&#21450;&#20004;&#20010;&#27169;&#22411;&#12290;&#20363;&#22914;&#65292;&#35753;&#25105;&#20204;&#32771;&#34385;&#29992;&#25143;&#21644;&#35282;&#33394;&#12290;&#19968;&#20010;&#29992;&#25143;&#21487;&#20197;&#26377;&#22810;&#20010;&#35282;&#33394;&#65292;&#32780;&#19968;&#20010;&#35282;&#33394;&#20063;&#21487;&#20197;&#34987;&#20998;&#37197;&#32473;&#22810;&#20010;&#29992;&#25143;&#12290;pivot&#34920;&#23558;&#21253;&#21547;user_id&#21644;role_id&#21015;&#12290;<\/p><h2>&#21019;&#24314;&#19968;&#20010;&#36879;&#35270;&#34920;<\/h2><p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23450;&#20041;&#36879;&#35270;&#34920;&#30340;&#26550;&#26500;&#24182;&#23558;&#20854;&#36801;&#31227;&#21040;&#25968;&#25454;&#24211;&#20013;&#65306;<\/p><pre><code>Schema::create('role_user', function (Blueprint $table) {\n    $table-&gt;unsignedBigInteger('user_id');\n    $table-&gt;unsignedBigInteger('role_id');\n    $table-&gt;foreign('user_id')-&gt;references('id')-&gt;on('users')-&gt;onDelete('cascade');\n    $table-&gt;foreign('role_id')-&gt;references('id')-&gt;on('roles')-&gt;onDelete('cascade');\n    $table-&gt;primary(['user_id', 'role_id']);\n    $table-&gt;timestamps();\n});\n<\/code><\/pre><p>&#36825;&#20010;&#21517;&#20026;role_user&#30340;&#34920;&#26159;&#25105;&#20204;&#30340;&#19968;&#20010;&#20998;&#23618;&#34920;&#65292;&#23427;&#21253;&#21547;&#20102;&#19982;&#29992;&#25143;&#21644;&#35282;&#33394;&#34920;&#30456;&#20851;&#30340;&#22806;&#38190;&#24341;&#29992;&#65292;&#20197;&#21450;&#22312;&#21024;&#38500;&#26102;&#36827;&#34892;&#32423;&#32852;&#25805;&#20316;&#20197;&#32500;&#25252;&#23436;&#25972;&#24615;&#32465;&#23450;&#12290;<\/p><h2>&#23450;&#20041;&#20851;&#31995;<\/h2><p>&#22312;&#29992;&#25143;&#27169;&#22411;(User model)&#20013;&#65292;&#25105;&#20204;&#23558;&#23450;&#20041;&#19968;&#20010;roles()&#26041;&#27861;&#26469;&#25551;&#36848;&#36825;&#31181;&#20851;&#31995;&#65306;<\/p><pre><code>public function roles() {\n    return $this-&gt;belongsToMany(Role::class);\n}\n<\/code><\/pre><p>&#21516;&#26679;&#65292;&#22312;&#35282;&#33394;&#27169;&#22411;&#20013;&#65292;&#20320;&#20250;&#26377;&#65306;<\/p><pre><code>public function users() {\n    return $this-&gt;belongsToMany(User::class);\n}\n<\/code><\/pre><h2>&#19982;Pivot&#34920;&#20132;&#20114;<\/h2><p>&#20026;&#20102;&#20851;&#32852;&#35282;&#33394;&#19982;&#29992;&#25143;&#65292;Eloquent &#30340; attach &#26041;&#27861;&#38750;&#24120;&#26377;&#29992;&#65306;<\/p><pre><code>$user = User::find(1);\n$user-&gt;roles()-&gt;attach($roleId);\n<\/code><\/pre><h4>&#27491;&#22312;&#26816;&#32034;&#36879;&#35270;&#34920;&#25968;&#25454;&#12290;<\/h4><p>&#22312;&#20174;&#36879;&#35270;&#34920;&#20013;&#26816;&#32034;&#35760;&#24405;&#26102;&#65292;Eloquent &#20250;&#24110;&#21161;&#20320;&#35775;&#38382;&#36879;&#35270;&#34920;&#23646;&#24615;&#65306;<\/p><pre><code>$user = User::find(1);\nforeach ($user-&gt;roles as $role) {\n    echo $role-&gt;pivot-&gt;created_at;\n}\n<\/code><\/pre><h4>&#26356;&#26032;&#36879;&#35270;&#25968;&#25454;<\/h4><p>&#35201;&#26356;&#26032;&#19968;&#20010;&#29992;&#25143;&#30340;&#29616;&#26377;&#35282;&#33394;&#26465;&#30446;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;updateExistingPivot&#26041;&#27861;&#65306;<\/p><pre><code>$user = User::find(1);\n$user-&gt;roles()-&gt;updateExistingPivot($roleId, ['column' =&gt; 'value']);\n<\/code><\/pre><h4>&#35299;&#32465;&#35760;&#24405;<\/h4><p>&#35201;&#31227;&#38500;&#20851;&#32852;&#65306;<\/p><pre><code>$user = User::find(1);\n$user-&gt;roles()-&gt;detach($roleId);\n<\/code><\/pre><h2>&#39640;&#32423;&#36879;&#35270;&#34920;&#20132;&#20114;&#25805;&#20316;<\/h2><p>&#20998;&#39029;&#34920;&#19981;&#20165;&#21487;&#20197;&#23384;&#20648;&#22806;&#38190;&#65292;&#36824;&#21487;&#20197;&#28155;&#21152;&#39069;&#22806;&#30340;&#23383;&#27573;&#26469;&#25429;&#25417;&#20851;&#20110;&#20851;&#31995;&#26356;&#22810;&#25968;&#25454;&#12290;&#20363;&#22914;&#65292;&#25105;&#20204;&#21487;&#20197;&#20026;&#20998;&#39029;&#34920;&#28155;&#21152;&#19968;&#20010;&ldquo;&#21040;&#26399;&#26102;&#38388;&rdquo;&#21015;&#65306;<\/p><pre><code>Schema::table('role_user', function (Blueprint $table) {\n    $table-&gt;dateTime('expires_at')-&gt;nullable();\n});\n<\/code><\/pre><p>&#29616;&#22312;&#20320;&#21487;&#20197;&#20351;&#29992;withPivot&#26041;&#27861;&#26469;&#23450;&#20041;&#20851;&#31995;&#65292;&#21253;&#25324;&#39069;&#22806;&#30340;&#23646;&#24615;&#65306;<\/p><pre><code>public function roles() {\n    return $this-&gt;belongsToMany(Role::class)-&gt;withPivot('expires_at');\n}\n<\/code><\/pre><h2>&#22788;&#29702;&#33258;&#23450;&#20041;&#36879;&#35270;&#27169;&#22411;<\/h2><p>&#26377;&#26102;&#65292;&#20320;&#38656;&#35201;&#20351;&#36879;&#35270;&#34920;&#30340;&#34892;&#20026;&#31867;&#20284;&#20110;&#19968;&#20010;&#23436;&#25972;&#30340;Eloquent&#27169;&#22411;&#12290;&#20026;&#27492;&#65292;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#33258;&#23450;&#20041;&#30340;&#36879;&#35270;&#34920;&#27169;&#22411;&#12290;<\/p><pre><code>use IlluminateDatabaseEloquentRelationsPivot;\n\nclass RoleUser extends Pivot {\n    \/\/ ...\n}\n<\/code><\/pre><p>&#30830;&#20445;&#25351;&#31034;&#20851;&#31995;&#20351;&#29992;&#27492;&#33258;&#23450;&#20041;&#27169;&#22411;&#65306;<\/p><pre><code>public function roles() {\n    return $this-&gt;belongsToMany(Role::class)-&gt;using(RoleUser::class);\n}\n<\/code><\/pre><p>&#36825;&#26679;&#65292;RoleUser &#23601;&#21487;&#20197;&#20316;&#20026;&#19968;&#20010;&#27491;&#24120;&#30340; Eloquent &#27169;&#22411;&#26469;&#20351;&#29992;&#65292;&#24182;&#25317;&#26377;&#33258;&#24049;&#30340;&#26041;&#27861;&#12289;&#20851;&#31995;&#21644;&#29305;&#24615;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#20998;&#32452;&#34920;&#65288;pivot table&#65289;&#26159;Eloquent&#20013;&#30340;&#19968;&#20010;&#20851;&#38190;&#37096;&#20998;&#65292;&#23427;&#20351;&#24320;&#21457;&#20154;&#21592;&#33021;&#22815;&#36731;&#26494;&#19988;&#31934;&#30830;&#22320;&#31649;&#29702;&#22810;&#23545;&#22810;&#20851;&#31995;&#12290;&#36890;&#36807;&#29702;&#35299;&#21644;&#21033;&#29992;&#20998;&#32452;&#34920;&#65292;&#24320;&#21457;&#20154;&#21592;&#21487;&#20197;&#26377;&#25928;&#22320;&#32467;&#26500;&#21270;&#24182;&#19982;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#22797;&#26434;&#25968;&#25454;&#36827;&#34892;&#20132;&#20114;&#12290;<\/p><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#25506;&#35752;&#20102;&#20351;&#29992;pivot&#34920;&#26684;&#22312;Laravel Eloquent&#20013;&#30340;&#22522;&#26412;&#21644;&#39640;&#32423;&#27010;&#24565;&#65292;&#24182;&#38468;&#26377;&#31034;&#20363;&#20197;&#21152;&#28145;&#29702;&#35299;&#12290;&#32463;&#36807;&#19968;&#20123;&#32451;&#20064;&#65292;&#24744;&#23558;&#22312;&#30701;&#26102;&#38388;&#20869;&#21033;&#29992;pivot&#34920;&#26684;&#26500;&#24314;&#26356;&#21152;&#28789;&#27963;&#21644;&#21151;&#33021;&#20016;&#23500;&#30340;&#24212;&#29992;&#31243;&#24207;&#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;Eloquent &#26159;&#19968;&#20010; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#24211;&#65292;&#29992;&#20110;&#19982; MySQL &#25968;&#25454;&#24211;&#36827;&#34892;&#20132;&#20114;&#12290;Eloquent &#25552;&#20379;&#20102;&#24378;&#22823;&#30340;&#25968;&#25454;&#25805;&#20316;&#21151;&#33021;&#65292;&#20351;&#24471;&#24320;&#21457;&#32773;&#21487;&#20197;&#26356;&#36731;&#26494;&#22320;&#25805;&#20316;&#25968;&#25454;&#24211;&#12290;<\/p>\n<p>&#26530;&#36724;&#34920;&#65288;pivot table&#65289;&#26159; Eloquent &#20013;&#30340;&#19968;&#31181;&#25968;&#25454;&#27169;&#22411;&#12290;&#23427;&#26159;&#19968;&#31181;&#29305;&#27530;&#30340;&#20851;&#32852;&#20851;&#31995;&#65292;&#20801;&#35768;&#23558;&#20004;&#20010;&#25110;&#32773;&#22810;&#20010;&#34920;&#30340;&#25968;&#25454;&#32467;&#21512;&#22312;&#19968;&#36215;&#12290;&#26530;&#36724;&#34920;&#30340;&#20027;&#35201;&#30446;&#30340;&#26159;&#25552;&#20379;&#19968;&#31181;&#26041;&#24335;&#26469;&#22788;&#29702;&#22810;&#23545;&#22810;&#30340;&#20851;&#31995;&#65292;&#29305;&#21035;&#26159;&#22312;&#38656;&#35201;&#23454;&#29616;&#22797;&#26434;&#30340;&#26597;&#35810;&#21644;&#35745;&#31639;&#26102;&#12290;<\/p>\n<p>&#26530;&#36724;&#34920;&#30340;&#21019;&#24314;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#27493;&#39588;&#23436;&#25104;&#65306;<\/p>\n<ol>\n<li>&#39318;&#20808;&#65292;&#23450;&#20041;&#20004;&#20010;&#34920;&#65306;&#19968;&#20010;&#26159;&#20027;&#34920;&#65292;&#21478;&#19968;&#20010;&#26159;&#26530;&#36724;&#34920;&#12290;<\/li>\n<li>&#22312;&#20027;&#34920;&#19978;&#28155;&#21152;&#19968;&#20010;&#22806;&#38190;&#23383;&#27573;&#65292;&#25351;&#21521;&#26530;&#36724;&#34920;&#30340;&#20027;&#38190;&#12290;<\/li>\n<li>&#23450;&#20041;&#19968;&#20010;&#26032;&#30340;&#27169;&#22411;&#31867;&#65292;&#32487;&#25215;&#33258; Eloquent &#30340; Model &#31867;&#65292;&#24182;&#20351;&#29992; pivot &#34920;&#26684;&#32467;&#26500;&#12290;<\/li>\n<li>&#22312;&#27169;&#22411;&#31867;&#20013;&#65292;&#20351;&#29992; $table &#23646;&#24615;&#25351;&#23450;&#26530;&#36724;&#34920;&#30340;&#21517;&#31216;&#12290;<\/li>\n<li>&#20351;&#29992; pivot &#34920;&#26684;&#32467;&#26500;&#30340;&#26041;&#27861;&#65292;&#22914; pivot() &#26041;&#27861;&#26469;&#35774;&#32622;&#25968;&#25454;&#12290;<\/li>\n<\/ol>\n<p>&#20363;&#22914;&#65292;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#29992;&#25143;&#34920;&#21644;&#19968;&#20010;&#35746;&#21333;&#34920;&#65292;&#25105;&#20204;&#38656;&#35201;&#22312;&#19968;&#20010;&#34920;&#20013;&#23384;&#20648;&#29992;&#25143;&#30340;&#36141;&#20080;&#21382;&#21490;&#12290;&#25105;&#20204;&#21487;&#20197;&#36825;&#26679;&#35774;&#35745;&#25105;&#20204;&#30340;&#27169;&#22411;&#65306;<\/p>\n<pre><code class=\"language-php\">class User extends Model {\n    public function orders() {\n        return $this-&gt;belongsToMany(Order::class);\n    }\n}\n\nclass Order extends Model {\n    protected $table = 'orders';\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>User<\/code> &#21644; <code>Order<\/code> &#37117;&#26377; <code>orders<\/code> &#20851;&#32852;&#65292;&#20854;&#20013; <code>orders<\/code> &#20063;&#26159;&#19968;&#20010;&#27169;&#22411;&#31867;&#65292;&#23427;&#32487;&#25215;&#33258; Eloquent &#30340; Model &#31867;&#65292;&#24182;&#19988;&#20351;&#29992;&#20102; pivot &#34920;&#26684;&#32467;&#26500;&#12290;<\/p>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807; <code>$user-&gt;orders<\/code> &#26469;&#33719;&#21462;&#29992;&#25143;&#30340;&#25152;&#26377;&#36141;&#20080;&#35760;&#24405;&#12290;<\/p>\n<p>&#20851;&#20110;&#26530;&#36724;&#34920;&#30340;&#19968;&#20010;&#24120;&#35265;&#29992;&#27861;&#26159;&#22312;&#35746;&#21333;&#34920;&#20013;&#28155;&#21152;&#39069;&#22806;&#30340;&#20449;&#24687;&#65292;&#27604;&#22914;&#21830;&#21697;&#20449;&#24687;&#31561;&#12290;&#36825;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#26597;&#35810;&#35746;&#21333;&#21015;&#34920;&#26102;&#26681;&#25454;&#21830;&#21697;&#31867;&#22411;&#31579;&#36873;&#35746;&#21333;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#20010;&#35299;&#37322;&#23545;&#20320;&#26377;&#25152;&#24110;&#21161;&#65281;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#30097;&#38382;&#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; Laravel Eloquent &#26159; Laravel &#26694;&#26550;&#20013;&#29992;&#20110;&#25968;&#25454;&#24211;&#25805;&#20316;&#30340;&#19968;&#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-1004","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\/1004","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=1004"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1004"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1004"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}