{"id":1000,"date":"2025-06-12T04:34:06","date_gmt":"2025-06-11T20:34:06","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/1000.html"},"modified":"2025-06-12T04:34:06","modified_gmt":"2025-06-11T20:34:06","slug":"eloquent-%e5%9c%a8%e5%85%b3%e7%b3%bb%e4%b8%ad%e4%bd%bf%e7%94%a8%e5%a4%9a%e4%b8%aa%e5%a4%96%e9%94%ae","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1000.html","title":{"rendered":"Eloquent: \u5728\u5173\u7cfb\u4e2d\u4f7f\u7528\u591a\u4e2a\u5916\u952e"},"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;&#38656;&#35201;&#22312;&#19968;&#20010;&#27169;&#22411;&#20013;&#23450;&#20041;&#22810;&#20010;&#22806;&#38190;&#20851;&#32852;&#65292;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#36827;&#34892;&#25805;&#20316;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#23450;&#20041;&#27169;&#22411;<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#21019;&#24314;&#20102;&#20004;&#20010;&#27169;&#22411;&#65306;<code>User<\/code> &#21644; <code>Post<\/code>&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#35774;&#32622;&#22806;&#38190;&#20851;&#31995;<\/strong>&#65306;\n&#22312;&#27599;&#20010;&#27169;&#22411;&#20013;&#65292;&#20351;&#29992; <code>belongsTo<\/code> &#26041;&#27861;&#26469;&#23450;&#20041;&#22806;&#38190;&#20851;&#31995;&#12290;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ User.php\nnamespace App;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass User extends Model\n{\n    public function posts()\n    {\n        return $this-&gt;hasMany(Post::class);\n    }\n}\n\n\/\/ Post.php\nnamespace App;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass Post extends Model\n{\n    public function user()\n    {\n        return $this-&gt;belongsTo(User::class);\n    }\n}<\/code><\/pre>\n<ol start=\"3\">\n<li><strong>&#26597;&#35810;&#25968;&#25454;<\/strong>&#65306;\n&#20320;&#21487;&#20197;&#36890;&#36807;&#22806;&#38190;&#20851;&#31995;&#26469;&#26597;&#35810;&#25968;&#25454;&#12290;&#20363;&#22914;&#65292;&#33719;&#21462;&#26576;&#20010;&#29992;&#25143;&#30340;&#25152;&#26377;&#24086;&#23376;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$user = User::find(1);\n$posts = $user-&gt;posts;<\/code><\/pre>\n<ol start=\"4\">\n<li><strong>&#26356;&#26032;&#25968;&#25454;<\/strong>&#65306;\n&#20063;&#21487;&#20197;&#36890;&#36807;&#22806;&#38190;&#20851;&#31995;&#26469;&#26356;&#26032;&#25968;&#25454;&#12290;&#20363;&#22914;&#65292;&#23558;&#26576;&#20010;&#24086;&#23376;&#30340;&#29992;&#25143;&#26356;&#26032;&#20026;&#21478;&#19968;&#20010;&#29992;&#25143;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$post = Post::find(1);\n$newUser = User::find(2);\n$post-&gt;user_id = $newUser-&gt;id;\n$post-&gt;save();<\/code><\/pre>\n<ol start=\"5\">\n<li><strong>&#21024;&#38500;&#25968;&#25454;<\/strong>&#65306;\n&#36890;&#36807;&#22806;&#38190;&#20851;&#31995;&#20063;&#21487;&#20197;&#21024;&#38500;&#25968;&#25454;&#12290;&#20363;&#22914;&#65292;&#21024;&#38500;&#26576;&#20010;&#24086;&#23376;&#21450;&#20854;&#20851;&#32852;&#30340;&#29992;&#25143;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$post = Post::find(1);\n$post-&gt;delete();<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010; <code>User<\/code> &#27169;&#22411;&#21644;&#19968;&#20010; <code>Post<\/code> &#27169;&#22411;&#65292;&#24182;&#19988;&#25105;&#20204;&#22312; <code>User<\/code> &#27169;&#22411;&#20013;&#23450;&#20041;&#20102;&#19968;&#20010; <code>posts<\/code> &#22806;&#38190;&#20851;&#31995;&#12290;&#25105;&#20204;&#21487;&#20197;&#36825;&#26679;&#32534;&#20889;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ User.php\nnamespace App;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass User extends Model\n{\n    public function posts()\n    {\n        return $this-&gt;hasMany(Post::class);\n    }\n}\n\n\/\/ Post.php\nnamespace App;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass Post extends Model\n{\n    public function user()\n    {\n        return $this-&gt;belongsTo(User::class);\n    }\n}\n\n\/\/ &#33719;&#21462;&#26576;&#20010;&#29992;&#25143;&#30340;&#25152;&#26377;&#24086;&#23376;\n$user = User::find(1);\n$posts = $user-&gt;posts;\n\n\/\/ &#26356;&#26032;&#26576;&#20010;&#24086;&#23376;&#30340;&#29992;&#25143;\n$post = Post::find(1);\n$newUser = User::find(2);\n$post-&gt;user_id = $newUser-&gt;id;\n$post-&gt;save();\n\n\/\/ &#21024;&#38500;&#26576;&#20010;&#24086;&#23376;&#21450;&#20854;&#20851;&#32852;&#30340;&#29992;&#25143;\n$post = Post::find(1);\n$post-&gt;delete();<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#22312; Laravel &#20013;&#22788;&#29702;&#20855;&#26377;&#22810;&#20010;&#22806;&#38190;&#20851;&#32852;&#30340;&#20851;&#31995;&#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>&#22312;&#20351;&#29992;Laravel&#30340;Eloquent&#26102;&#65292;&#23450;&#20041;&#34920;&#20043;&#38388;&#30340;&#20851;&#31995;&#26159;&#19968;&#39033;&#20851;&#38190;&#29305;&#24615;&#65292;&#23427;&#26377;&#21161;&#20110;&#21019;&#24314;&#20248;&#38597;&#12289;&#21487;&#35835;&#24615;&#24378;&#19988;&#39640;&#25928;&#30340;&#25968;&#25454;&#24211;&#26597;&#35810;&#12290;&#28982;&#32780;&#65292;&#22312;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#25968;&#25454;&#27169;&#22411;&#21464;&#24471;&#22797;&#26434;&#26102;&#65292;&#38656;&#35201;&#36890;&#36807;&#22810;&#20010;&#22806;&#38190;&#26469;&#23450;&#20041;&#20851;&#31995;&#30340;&#24773;&#20917;&#23601;&#20250;&#20986;&#29616;&#12290;&#22312;&#36825;&#20010;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#20171;&#32461;&#22914;&#20309;&#26377;&#25928;&#22320;&#31649;&#29702;&#36825;&#20123;&#20851;&#31995;&#65292;&#30830;&#20445;&#25968;&#25454;&#23436;&#25972;&#24615;&#24471;&#21040;&#32500;&#25252;&#65292;&#21516;&#26102;&#20445;&#25345;&#26597;&#35810;&#24615;&#33021;&#12290;<\/p><h2>&#29702;&#35299;&#22522;&#26412;&#27010;&#24565;<\/h2><p>&#19968;&#23545;&#19968;&#12289;&#19968;&#23545;&#22810;&#21644;&#22810;&#23545;&#22810;&#30340;&#20851;&#31995;&#65292;Eloquent ORM &#37117;&#21487;&#20197;&#33258;&#21160;&#22788;&#29702;&#12290;&#24403;&#28041;&#21450;&#21040;&#19968;&#20010;&#34920;&#19982;&#20004;&#20010;&#34920;&#20043;&#38388;&#30340;&#21333;&#20010;&#22806;&#38190;&#26102;&#65292;&#36825;&#20123;&#20851;&#31995;&#22788;&#29702;&#36215;&#26469;&#30456;&#23545;&#31616;&#21333;&#12290;&#20027;&#34920;&#26377;&#19968;&#20010;&#24341;&#29992;&#30456;&#20851;&#34920;&#20027;&#38190;&#30340;&#22806;&#38190;&#21015;&#12290;<\/p><p>&#32771;&#34385;&#20197;&#19979;&#30340;&#22522;&#26412;&#19968;&#23545;&#19968;&#20851;&#31995;&#31034;&#20363;&#65306;<\/p><pre><code>&lt;?php\n\nclass 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>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>posts<\/code>&#34920;&#23558;&#26377;&#19968;&#20010;&#21517;&#20026;foreign key&#30340;&#22806;&#38190;&#21015;&#21517;&#30340;&#23383;&#27573;&#12290;<code>user_id<\/code>&#37027;&#20010;&#24341;&#29992;&#20102;<code>id<\/code>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#22826;&#26126;&#30333;&#24744;&#30340;&#24847;&#24605;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>users<\/code>&#34920;&#21333;&#12290;&#22312;Eloquent&#20013;&#65292;&#36825;&#26159;&#19968;&#20010;&#20856;&#22411;&#30340;&#19968;&#23545;&#19968;&#25110;&#22810;&#23545;&#19968;&#30340;&#20851;&#31995;&#12290;<\/p><h2>&#22312;&#20851;&#31995;&#20013;&#23450;&#20041;&#22810;&#20010;&#22806;&#38190;&#26159;&#38750;&#24120;&#37325;&#35201;&#30340;&#65292;&#36825;&#26377;&#21161;&#20110;&#30830;&#20445;&#25968;&#25454;&#30340;&#19968;&#33268;&#24615;&#21644;&#23436;&#25972;&#24615;&#12290;<\/h2><p>&#21487;&#33021;&#23384;&#22312;&#19968;&#20123;&#22330;&#26223;&#65292;&#21333;&#26465;&#35760;&#24405;&#38656;&#35201;&#19982;&#22810;&#20010;&#29238;&#35760;&#24405;&#30456;&#20851;&#32852;&#12290;&#20363;&#22914;&#65292;&#22312;&#19968;&#20010;&#36135;&#29289;&#27969;&#31995;&#32479;&#20013;&#65292;&#20551;&#35774;&#26377;&#19968;&#20010;&#36861;&#36394;&#31995;&#32479;&#65292;&#20854;&#20013;&#19968;&#26465;&#21457;&#36135;&#20449;&#24687;&#21487;&#33021;&#23545;&#24212;&#22810;&#26465;&#36816;&#36755;&#35760;&#24405;&#12290;<code>Shipment<\/code>&#38656;&#35201;&#21442;&#32771;&#20004;&#20010;&#26041;&#38754;&#12290;<code>Sender<\/code>and a (&#27809;&#26377;&#25552;&#20379;&#20855;&#20307;&#20869;&#23481;&#65292;&#26080;&#27861;&#30830;&#23450;&#32763;&#35793;)<code>Receiver<\/code>&#65292;&#20004;&#32773;&#37117;&#26159;&#26576;&#31181;&#23454;&#20363;&#12290;<code>User<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>&lt;?php\n\nclass Shipment extends Model {\n    public function sender() {\n        return $this-&gt;belongsTo(User::class, 'sender_id');\n    }\n\n    public function receiver() {\n        return $this-&gt;belongsTo(User::class, 'receiver_id');\n    }\n}\n<\/code><\/pre><p>&#36825;&#27573;&#20195;&#30721;&#29255;&#27573;&#23450;&#20041;&#20102;&#20004;&#20010;&#20851;&#31995;&#12290;<code>Shipment<\/code>&#27169;&#22411;&#21508;&#26377;&#21508;&#30340;&#22806;&#38190;&#12290;<\/p><h2>&#39640;&#32423;&#20851;&#31995;&#19982;&#33258;&#23450;&#20041;&#23646;&#24615;<\/h2><p>&#20551;&#35774;&#20320;&#38656;&#35201;&#22312;&#21152;&#36733;&#20851;&#31995;&#26102;&#33719;&#21462;&#39069;&#22806;&#30340;&#25968;&#25454;&#65292;&#20363;&#22914;&#19968;&#20010;&#35282;&#33394;&#29305;&#23450;&#30340;&#23646;&#24615;&#65292;&#20294;&#35813;&#23646;&#24615;&#27809;&#26377;&#23384;&#20648;&#20026;&#22806;&#38190;&#12290;Eloquent &#20801;&#35768;&#20320;&#36890;&#36807;&#28155;&#21152;&#32422;&#26463;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;&#32771;&#34385;&#19968;&#31181;&#24773;&#20917;&#65292;&#29992;&#25143;&#26082;&#21487;&#20197;&#26159;&#26576;&#20010;&#35282;&#33394;&#30340;&#19968;&#37096;&#20998;&#65292;&#20063;&#21487;&#20197;&#25317;&#26377;&#21478;&#19968;&#20010;&#35282;&#33394;&#12290;\n&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#22914;&#26524;&#38656;&#35201;&#26681;&#25454;&#35282;&#33394;&#30340;&#19981;&#21516;&#23646;&#24615;&#36827;&#34892;&#25968;&#25454;&#26597;&#35810;&#21644;&#22788;&#29702;&#65292;&#21487;&#20197;&#20351;&#29992; Eloquent &#30340;&#20851;&#31995;&#25805;&#20316;&#12290;&#20855;&#20307;&#26469;&#35828;&#65292;&#21487;&#20197;&#36890;&#36807;&#23450;&#20041;&#20851;&#32852;&#27169;&#22411;&#25110;&#20851;&#31995;&#65292;&#28982;&#21518;&#22312;&#26597;&#35810;&#26041;&#27861;&#20013;&#35774;&#32622;&#30456;&#24212;&#30340;&#26465;&#20214;&#26469;&#23454;&#29616;&#12290;&#20363;&#22914;&#65306;\n\/\/ &#23450;&#20041; User &#21644; Role &#20043;&#38388;&#30340;&#20851;&#31995;\nclass User extends Model\n{\n public function roles()\n {\n return $this-&gt;belongsToMany(Role::class);\n }\n}\n\n\/\/ &#22312;&#25511;&#21046;&#22120;&#20013;&#26597;&#35810;&#20855;&#26377;&#29305;&#23450;&#35282;&#33394;&#30340;&#29992;&#25143;\npublic function index(Request $request)\n{\n $role = Role::find($request-&gt;input(&#8216;role_id&#8217;));\n\n if ($role) {\n $users = User::whereHas(&#8216;roles&#8217;, function ($query) use ($role) {\n $query-&gt;whereRoleName($role-&gt;name);\n })-&gt;get();\n }\n\n return response()-&gt;json($users);\n}\n&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;whereHas &#26041;&#27861;&#29992;&#20110;&#26816;&#26597;&#29992;&#25143;&#30340; roles &#20851;&#31995;&#26159;&#21542;&#21253;&#21547;&#25351;&#23450;&#30340;&#35282;&#33394;&#12290;&#36825;&#26679;&#21487;&#20197;&#22312;&#25968;&#25454;&#24211;&#23618;&#38754;&#19978;&#23436;&#25104;&#23545;&#19981;&#21516;&#35282;&#33394;&#30340;&#31579;&#36873;&#21644;&#32858;&#21512;&#25805;&#20316;&#65292;&#32780;&#26080;&#38656;&#22312;&#24212;&#29992;&#20195;&#30721;&#23618;&#38754;&#37325;&#22797;&#32534;&#20889;&#30456;&#21516;&#30340;&#25805;&#20316;&#36923;&#36753;&#12290;<code>manager<\/code>and another one is an.<code>employee<\/code>&#22312;&#39033;&#30446;&#20013;&#65306;<\/p><pre><code>&lt;?php\n\nclass Project extends Model {\n    public function manager() {\n        return $this-&gt;belongsTo(User::class)-&gt;where('role', 'manager');\n    }\n\n    public function employees() {\n        return $this-&gt;belongsToMany(User::class)-&gt;wherePivot('role', 'employee');\n    }\n}\n<\/code><\/pre><p>&#22312;&#29616;&#23454;&#19990;&#30028;&#30340;&#24773;&#26223;&#19979;&#65292;&#36825;&#20123;&#20851;&#31995;&#21487;&#33021;&#38656;&#35201;&#36827;&#34892;&#25042;&#21152;&#36733;&#12289;&#26465;&#20214;&#32422;&#26463;&#25110;&#25490;&#24207;&#65292;&#36825;&#20123;&#37117;&#26159;&#21487;&#20197;&#36890;&#36807;&#20256;&#36882;&#32473;&#20851;&#31995;&#26041;&#27861;&#30340;&#38381;&#21253;&#26469;&#25351;&#23450;&#30340;&#12290;<\/p><h2>&#22810;&#23545;&#22810;&#20851;&#31995;&#65288;Many-to-Many Relationships&#65289;&#19982;&#22797;&#21512;&#38190;<\/h2><p>&#22312;&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;&#35768;&#22810;&#23545;&#19968;&#20851;&#31995;&#20013;&#30340;&#36879;&#35270;&#34920;&#21487;&#33021;&#38656;&#35201;&#22797;&#21512;&#38190;&#26469;&#27491;&#30830;&#23450;&#20041;&#20851;&#32852;&#12290;&#36825;&#21487;&#20197;&#20687;&#19968;&#20010;&#35282;&#33394;&#29992;&#25143;&#34920;&#19968;&#26679;&#65292;&#35760;&#24405;&#19982;&#39033;&#30446;&#30456;&#20851;&#32852;&#30340;&#35282;&#33394;&#20998;&#37197;&#12290;<\/p><pre><code>&lt;?php\n\nclass Role extends Model {\n    public function users() {\n        return $this-&gt;belongsToMany(User::class)-&gt;withPivot('project_id');\n    }\n}\n\nclass User extends Model {\n    public function roles() {\n        return $this-&gt;belongsToMany(Role::class)-&gt;withPivot('project_id');\n    }\n}\n<\/code><\/pre><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#26126;&#30333;&#20320;&#22312;&#35828;&#20160;&#20040;&#12290;<code>withPivot<\/code>&#26041;&#27861;&#21578;&#35785; Eloquent &#21253;&#21547;&#65288;include&#65289;<code>project_id<\/code>&#22312;pivot&#27169;&#22411;&#20013;&#65292;&#20801;&#35768;&#25105;&#20204;&#20351;&#29992;&#20004;&#31181;&#19981;&#21516;&#30340;&#31574;&#30053;&#26469;&#35299;&#20915;&#38382;&#39064;&#12290;<code>role_id<\/code>And the<code>project_id<\/code>&#20316;&#20026;&#22797;&#21512;&#38190;&#30340;&#19968;&#37096;&#20998;&#65292;&#29992;&#20110;&#26631;&#35782;&#20851;&#31995;&#12290;<\/p><h2>&#22788;&#29702;&#22810;&#24577;&#24615;&#20851;&#31995;<\/h2><p>&#26446;&#22885;&#32435;&#22810;&#36824;&#25552;&#20379;&#20102;&#23454;&#29616;&#22810;&#23545;&#19968;&#20851;&#31995;&#30340;&#33021;&#21147;&#12290;&#22810;&#23545;&#19968;&#20851;&#31995;&#20801;&#35768;&#27169;&#22411;&#23646;&#20110;&#22810;&#20010;&#20854;&#20182;&#27169;&#22411;&#65292;&#36890;&#36807;&#21333;&#19968;&#20851;&#32852;&#36827;&#34892;&#12290;&#35753;&#25105;&#20204;&#29992;&#21478;&#19968;&#20010;&#20363;&#23376;&#26469;&#25506;&#35752;&#65306;<\/p><pre><code>&lt;?php\n\nclass Photo extends Model {\n    public function imageable() {\n        return $this-&gt;morphTo();\n    }\n}\n\nclass Post extends Model {\n    public function photos() {\n        return $this-&gt;morphMany(Photo::class, 'imageable');\n    }\n}\n\nclass User extends Model {\n    public function photos() {\n        return $this-&gt;morphMany(Photo::class, 'imageable');\n    }\n}\n<\/code><\/pre><p>&#22312;&#36825;&#31181;&#22810;&#27169;&#24577;&#30340;&#24773;&#22659;&#19979;&#65292;&#20004;&#32773;&#37117;&hellip;&hellip;<code>User<\/code>and &#26159;&ldquo;&#21644;&rdquo;&#30340;&#25340;&#38899;&#65292;&#19981;&#26159;&#20013;&#25991;&#30340;&#35789;&#27719;&#12290;<code>Post<\/code>&#21487;&#20197;&#26377;&#24456;&#22810;&#12290;<code>Photos<\/code>&#21644;&#25105;&#19968;&#26679;&#65292;&#20063;&#26159;&#22312;&#31561;&#28040;&#24687;&#12290;<code>Photos<\/code>&#34920;&#26684;&#24212;&#35813;&#21253;&#25324;<code>imageable_id<\/code>and &#26159;&ldquo;&#24182;&#19988;&rdquo;&#30340;&#24847;&#24605;&#12290;<code>imageable_type<\/code>&#20026;&#20102;&#23384;&#20648;&#19982;&#20851;&#32852;&#29238;&#27169;&#22411;&#30456;&#20851;&#30340;ID&#21644;&#31867;&#22411;&#24341;&#29992;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#24050;&#32463;&#20171;&#32461;&#20102;&#20351;&#29992;Eloquent&#20851;&#31995;&#23450;&#20041;&#19981;&#21516;&#31867;&#22411;&#30340;&#22806;&#38190;&#30340;&#26041;&#27861;&#65292;&#20174;&#31616;&#21333;&#30340;&#19968;&#23545;&#19968;&#20851;&#31995;&#21040;&#26356;&#22797;&#26434;&#30340;&#22810;&#24577;&#20851;&#32852;&#12290;&#26681;&#25454;&#24744;&#29305;&#23450;&#30340;&#25968;&#25454;&#32467;&#26500;&#21644;&#35201;&#25191;&#34892;&#30340;&#26597;&#35810;&#65292;&#36873;&#25321;&#27491;&#30830;&#30340;&#20851;&#31995;&#31867;&#22411;&#33267;&#20851;&#37325;&#35201;&#12290;&#36890;&#36807;&#25484;&#25569;&#36825;&#20123;&#27010;&#24565;&#65292;&#24744;&#21487;&#20197;&#21019;&#24314;&#20855;&#26377;Laravel ORM&#30340;&#24378;&#22823;&#19988;&#21151;&#33021;&#24378;&#22823;&#30340;&#24212;&#29992;&#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;&#25968;&#25454;&#24211;&#35774;&#35745;&#20013;&#65292;&#20851;&#31995;&#27169;&#24335;&#26159;&#36890;&#36807;&#19968;&#32452;&#20851;&#32852;&#34920;&#26469;&#34920;&#31034;&#23454;&#20307;&#20043;&#38388;&#30340;&#32852;&#31995;&#30340;&#12290;&#22312;Eloquent ORM&#65288;Eloquent ORM for PHP&#65289;&#20013;&#65292;&#24403;&#38656;&#35201;&#22788;&#29702;&#20855;&#26377;&#22810;&#20010;&#22806;&#38190;&#30340;&#20851;&#31995;&#26102;&#65292;&#21487;&#20197;&#37319;&#29992;&#20197;&#19979;&#26041;&#27861;&#65306;<\/p>\n<h3>1. &#21019;&#24314;&#27169;&#22411;<\/h3>\n<p>&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#19982;&#25968;&#25454;&#24211;&#34920;&#30456;&#20851;&#30340;&#27169;&#22411;&#12290;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026;<code>Users<\/code>&#30340;&#34920;&#65292;&#20854;&#20013;&#21253;&#21547;&#29992;&#25143;ID&#21644;&#29992;&#25143;&#21517;&#12290;<\/p>\n<pre><code class=\"language-php\">use IlluminateDatabaseEloquentModel;\n\nclass Users extends Model\n{\n    protected $table = 'users';\n\n    \/\/ ...&#20854;&#20182;&#23646;&#24615;&#21644;&#26041;&#27861;...\n}<\/code><\/pre>\n<h3>2. &#20351;&#29992; Eloquent &#24314;&#31435;&#20851;&#32852;<\/h3>\n<p>&#35201;&#24314;&#31435;&#20004;&#20010;&#34920;&#20043;&#38388;&#30340;&#22810;&#23545;&#19968;&#20851;&#31995;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;<code>belongsTo<\/code>&#25110;&#32773;<code>hasOne<\/code>&#26041;&#27861;&#12290;&#36825;&#37324;&#25105;&#20204;&#29992;<code>hasOne<\/code>&#26469;&#23450;&#20041;&#21333;&#20010;&#29992;&#25143;&#30340;&#21807;&#19968;&#19968;&#20010;&#35282;&#33394;&#12290;<\/p>\n<pre><code class=\"language-php\">$userRole = new UserRole();\n$userRole-&gt;user_id = $userId;\n$userRole-&gt;save();\n\n\/\/ &#33719;&#21462;&#29992;&#25143;&#30340;&#35282;&#33394;\n$user = AppModelsUser::find($userId);\n$user-&gt;role; \/\/ &#36755;&#20986;&#65306;AppModelsRolesRole<\/code><\/pre>\n<h3>3. &#22810;&#23545;&#22810;&#20851;&#31995;<\/h3>\n<p>&#22914;&#26524;&#25105;&#20204;&#35201;&#21019;&#24314;&#19968;&#20010;&#22810;&#23545;&#22810;&#30340;&#34920;&#20851;&#31995;&#65292;&#22914;&#29992;&#25143;&#21487;&#20197;&#26377;&#22810;&#20010;&#35282;&#33394;&#65292;&#20294;&#27599;&#20010;&#35282;&#33394;&#20063;&#21487;&#20197;&#30001;&#22810;&#21517;&#29992;&#25143;&#25317;&#26377;&#65292;&#37027;&#20040;&#21487;&#20197;&#20351;&#29992;<code>hasMany<\/code>&#25110;<code>BelongsToMany<\/code>&#26041;&#27861;&#12290;<\/p>\n<pre><code class=\"language-php\">$roleUser = new RoleUser();\n$roleUser-&gt;role_id = $roleId;\n$roleUser-&gt;user_id = $userId;\n$roleUser-&gt;save();\n\n\/\/ &#33719;&#21462;&#35282;&#33394;&#19979;&#30340;&#29992;&#25143;\n$roles = AppModelsRole::find($roleId)-&gt;get();\nforeach ($roles as $role) {\n    echo \"&#29992;&#25143; ID: {$role-&gt;user_id}, &#35282;&#33394;&#21517;: {$role-&gt;name}n\";\n}<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#20351;&#29992;&#20102;Eloquent&#30340;<code>hasMany<\/code>&#26041;&#27861;&#26469;&#23454;&#29616;&#22810;&#23545;&#22810;&#20851;&#31995;&#65292;&#36890;&#36807;<code>$roleUser<\/code>&#34920;&#26469;&#36830;&#25509;&#29992;&#25143;&#21644;&#35282;&#33394;&#12290;<\/p>\n<pre><code class=\"language-php\">$roleUser = new RoleUser();\n$roleUser-&gt;role_id = $roleId;\n$roleUser-&gt;user_id = $userId;\n$roleUser-&gt;save();\n\n\/\/ &#33719;&#21462;&#35282;&#33394;&#19979;&#30340;&#29992;&#25143;\n$roles = AppModelsRole::find($roleId)-&gt;get();\nforeach ($roles as $role) {\n    echo \"&#29992;&#25143; ID: {$role-&gt;user_id}, &#35282;&#33394;&#21517;: {$role-&gt;name}n\";\n}<\/code><\/pre>\n<p>&#20197;&#19978;&#23601;&#26159;&#20351;&#29992;Eloquent ORM&#22788;&#29702;&#20855;&#26377;&#22810;&#20010;&#22806;&#38190;&#20851;&#31995;&#30340;&#26041;&#27861;&#12290;&#22312;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#21487;&#33021;&#20250;&#26681;&#25454;&#20855;&#20307;&#38656;&#27714;&#36873;&#25321;&#21512;&#36866;&#30340;&#26041;&#27861;&#65292;&#24182;&#32467;&#21512;&#20855;&#20307;&#30340;&#19994;&#21153;&#36923;&#36753;&#36827;&#34892;&#35843;&#25972;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#65292;&#22914;&#26524;&#20320;&#38656;&#35201;&#22312;&#19968;&#20010;&#27169;&#22411;&#20013;&#23450;&#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-1000","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\/1000","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=1000"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1000"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1000"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}