{"id":974,"date":"2025-06-12T03:57:47","date_gmt":"2025-06-11T19:57:47","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/974.html"},"modified":"2025-06-12T03:57:47","modified_gmt":"2025-06-11T19:57:47","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8eloquent%e4%b8%ad%e6%af%94%e8%be%83%e4%b8%a4%e4%b8%aa%e6%a8%a1%e5%9e%8b","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/974.html","title":{"rendered":"\u5982\u4f55\u5728Eloquent\u4e2d\u6bd4\u8f83\u4e24\u4e2a\u6a21\u578b"},"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;Eloquent&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>where<\/code>&#26041;&#27861;&#26469;&#27604;&#36739;&#20004;&#20010;&#27169;&#22411;&#12290;&#20551;&#35774;&#20320;&#26377;&#20004;&#20010;&#27169;&#22411;<code>ModelA<\/code>&#21644;<code>ModelB<\/code>&#65292;&#24182;&#19988;&#20320;&#24819;&#27604;&#36739;&#23427;&#20204;&#30340;&#26576;&#20010;&#23383;&#27573;&#65292;&#20363;&#22914;<code>fieldA<\/code>&#21644;<code>fieldB<\/code>&#65292;&#20320;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#36827;&#34892;&#65306;<\/p>\n<ol>\n<li><strong>&#23450;&#20041;&#27169;&#22411;<\/strong>&#65306;&#30830;&#20445;&#20320;&#30340;&#27169;&#22411;&#24050;&#32463;&#27491;&#30830;&#22320;&#23450;&#20041;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ ModelA.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass ModelA extends Model\n{\n    protected $fillable = ['fieldA', 'fieldB'];\n}\n\n\/\/ ModelB.php\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\n\nclass ModelB extends Model\n{\n    protected $fillable = ['fieldA', 'fieldB'];\n}<\/code><\/pre>\n<ol start=\"2\">\n<li><strong>&#26597;&#35810;&#27604;&#36739;<\/strong>&#65306;&#20320;&#21487;&#20197;&#20351;&#29992;<code>where<\/code>&#26041;&#27861;&#26469;&#27604;&#36739;&#20004;&#20010;&#27169;&#22411;&#30340;&#23383;&#27573;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#24819;&#25214;&#21040;&#25152;&#26377;<code>ModelA<\/code>&#23545;&#35937;&#20013;<code>fieldA<\/code>&#31561;&#20110;<code>ModelB<\/code>&#23545;&#35937;&#20013;<code>fieldA<\/code>&#30340;&#25152;&#26377;&#35760;&#24405;&#65292;&#24182;&#19988;<code>fieldB<\/code>&#20063;&#30456;&#31561;&#65292;&#21017;&#21487;&#20197;&#36825;&#26679;&#20570;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ &#31034;&#20363;&#20195;&#30721;\nuse AppModelsModelA;\nuse AppModelsModelB;\n\n$modelsA = ModelA::all();\n$modelsB = ModelB::all();\n\n$results = $modelsA-&gt;filter(function ($modelA) use ($modelsB) {\n    foreach ($modelsB as $modelB) {\n        if ($modelA-&gt;fieldA === $modelB-&gt;fieldA &amp;&amp; $modelA-&gt;fieldB === $modelB-&gt;fieldB) {\n            return true;\n        }\n    }\n    return false;\n});\n\nforeach ($results as $result) {\n    echo $result-&gt;fieldA . \" \" . $result-&gt;fieldB . \"n\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#33719;&#21462;&#20102;&#25152;&#26377;<code>ModelA<\/code>&#21644;<code>ModelB<\/code>&#23545;&#35937;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#36941;&#21382;&#27599;&#20010;<code>ModelA<\/code>&#23545;&#35937;&#65292;&#24182;&#26816;&#26597;&#23427;&#26159;&#21542;&#19982;&#20219;&#20309;<code>ModelB<\/code>&#23545;&#35937;&#30340;<code>fieldA<\/code>&#21644;<code>fieldB<\/code>&#37117;&#21305;&#37197;&#12290;&#22914;&#26524;&#26159;&#65292;&#21017;&#23558;&#35813;&#23545;&#35937;&#28155;&#21152;&#21040;&#32467;&#26524;&#38598;&#20013;&#12290;<\/p>\n<p>&#35831;&#27880;&#24847;&#65292;&#36825;&#20010;&#31034;&#20363;&#20551;&#35774;<code>ModelA<\/code>&#21644;<code>ModelB<\/code>&#30340;<code>fieldA<\/code>&#21644;<code>fieldB<\/code>&#23383;&#27573;&#26159;&#23383;&#31526;&#20018;&#31867;&#22411;&#30340;&#12290;&#22914;&#26524;&#20320;&#38656;&#35201;&#27604;&#36739;&#20854;&#20182;&#31867;&#22411;&#30340;&#25968;&#25454;&#65288;&#22914;&#25972;&#25968;&#12289;&#26085;&#26399;&#31561;&#65289;&#65292;&#20320;&#38656;&#35201;&#30456;&#24212;&#22320;&#35843;&#25972;&#27604;&#36739;&#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>&#22312;&#20351;&#29992;Laravel&#30340;Eloquent&#36827;&#34892;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#26102;&#65292;&#36890;&#24120;&#38656;&#35201;&#27604;&#36739;&#20004;&#20010;&#27169;&#22411;&#20197;&#30830;&#23450;&#23427;&#20204;&#26159;&#21542;&#20195;&#34920;&#25968;&#25454;&#24211;&#20013;&#30340;&#21516;&#19968;&#35760;&#24405;&#65292;&#25110;&#32773;&#26597;&#30475;&#23427;&#20204;&#20043;&#38388;&#21738;&#20123;&#23646;&#24615;&#21457;&#29983;&#20102;&#21464;&#21270;&#12290;&#26412;&#25351;&#21335;&#23558;&#25506;&#35752;&#20960;&#31181;&#26377;&#25928;&#30340;&#26041;&#27861;&#26469;&#27604;&#36739;&#20004;&#20010;Eloquent&#27169;&#22411;&#12290;<\/p><h2>&#27169;&#22411;&#31561;&#20215;&#29702;&#35299;<\/h2><p>&#22312;&#27604;&#36739;&#20043;&#21069;&#65292;&#29702;&#35299;&#20004;&#20010;Eloquent&#27169;&#22411;&#26159;&#21542;&ldquo;&#30456;&#31561;&rdquo;&#33267;&#20851;&#37325;&#35201;&#12290;&#20004;&#20010;&#27169;&#22411;&#34987;&#35270;&#20026;&#30456;&#31561;&#26102;&#65292;&#22914;&#26524;&#23427;&#20204;&#37117;&#26159;&#21516;&#19968;&#20010;Eloquent&#27169;&#22411;&#31867;&#30340;&#23454;&#20363;&#65292;&#24182;&#19988;&#25968;&#25454;&#24211;&#20013;&#26377;&#30456;&#21516;&#30340;&#26631;&#35782;&#31526;&#25110;&#20027;&#38190;&#65292;&#21017;&#35270;&#20026;&#30456;&#31561;&#12290;<\/p><h3>&#20351;&#29992; is &#26041;&#27861;<\/h3><pre><code>$user1 = User::find(1);\n$user2 = User::find(1);\n\n\/\/ Compare using the 'is' method\nif ($user1-&gt;is($user2)) {\n    echo 'Models represent the same record.';\n}\n<\/code><\/pre><p>&#8220;is&#8221; &#26041;&#27861;&#23545;&#20004;&#20010;&#27169;&#22411;&#20043;&#38388;&#36827;&#34892;&#20005;&#26684;&#27604;&#36739;&#65292;&#36890;&#36807;&#26816;&#26597;&#23427;&#20204;&#30340;&#31867;&#21644;&#20027;&#38190;&#26469;&#36827;&#34892;&#12290;<\/p><h2>&#27491;&#22312;&#26816;&#26597;&#23646;&#24615;&#21464;&#21270;&#12290;<\/h2><p>&#26377;&#26102;&#65292;&#25105;&#20204;&#38656;&#35201;&#27604;&#36739;&#27169;&#22411;&#30340;&#23646;&#24615;&#65292;&#20197;&#20415;&#26597;&#30475;&#21457;&#29983;&#20102;&#20160;&#20040;&#21464;&#21270;&#12290;Eloquent &#25552;&#20379;&#20102;&#19968;&#31995;&#21015;&#26041;&#27861;&#26469;&#24110;&#21161;&#25105;&#20204;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p><h3>&#20351;&#29992; isDirty &#21644; isClean &#26041;&#27861;<\/h3><pre><code>$user = User::find(1);\n$user-&gt;name = 'New Name';\n\n\/\/ Check if the 'name' attribute is dirty\nif ($user-&gt;isDirty('name')) {\n    echo 'Name has been changed.';\n}\n\n\/\/ Check if the model is clean\nif ($user-&gt;isClean()) {\n    echo 'No attributes have been changed.';\n}\n<\/code><\/pre><p>isDirty &#26041;&#27861;&#26816;&#26597;&#25351;&#23450;&#30340;&#23646;&#24615;&#26159;&#21542;&#33258;&#20174;&#20174;&#25968;&#25454;&#24211;&#26597;&#35810;&#27169;&#22411;&#20197;&#26469;&#25110;&#32773;&#33258;&#19978;&#27425;&#20445;&#23384;&#20197;&#26469;&#24050;&#26356;&#25913;&#36807;&#12290;&#21478;&#19968;&#26041;&#38754;&#65292;isClean &#26041;&#27861;&#21017;&#30830;&#23450;&#26159;&#21542;&#27809;&#26377;&#36827;&#34892;&#20219;&#20309;&#20462;&#25913;&#12290;<\/p><h3>&#20351;&#29992; getOriginal &#26041;&#27861;<\/h3><pre><code>$user = User::find(1);\n$originalName = $user-&gt;getOriginal('name');\n<\/code><\/pre><p>&#35813;&ldquo;getOriginal&rdquo;&#26041;&#27861;&#21487;&#29992;&#20110;&#33719;&#21462;&#23646;&#24615;&#22312;&#20219;&#20309;&#20462;&#25913;&#21457;&#29983;&#20043;&#21069;&#30340;&#30495;&#23454;&#20540;&#12290;<\/p><h2>&#27491;&#22312;&#26816;&#26597;&#20851;&#31995;&#12290;<\/h2><p>&#27169;&#22411;&#32463;&#24120;&#36890;&#36807;&#20851;&#31995;&#26469;&#23450;&#20041;&#65292;&#26377;&#26102;&#36825;&#20123;&#20851;&#31995;&#38656;&#35201;&#36827;&#34892;&#27604;&#36739;&#12290;&#20363;&#22914;&#65292;&#30830;&#23450;&#20004;&#20010;&#29992;&#25143;&#26159;&#21542;&#23646;&#20110;&#21516;&#19968;&#35282;&#33394;&#30340;&#27493;&#39588;&#22914;&#19979;&#65306;<\/p><pre><code>$user1 = User::with('roles')-&gt;find(1);\n$user2 = User::with('roles')-&gt;find(2);\n\nif ($user1-&gt;roles-&gt;isEqual($user2-&gt;roles)) {\n    echo 'Users share the same roles.';\n}\n<\/code><\/pre><p>&#35813;&#26041;&#27861;&#21487;&#29992;&#20110;&#27604;&#36739;&#38598;&#21512;&#24182;&#20250;&#27604;&#36739;&#25552;&#20379;&#32473;&#23427;&#30340;&#27169;&#22411;&#20013;&#30340;&#39033;&#30446;&#12290;<\/p><h2>&#20351;&#29992;&#33258;&#23450;&#20041;&#27604;&#36739;&#36923;&#36753;<\/h2><p>&#22312;&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;&#20320;&#38656;&#35201;&#23450;&#20041;&#33258;&#24049;&#30340;&#27604;&#36739;&#36923;&#36753;&#12290;&#36825;&#22312;&#22788;&#29702;&#22797;&#26434;&#30340;&#27169;&#22411;&#25110;&#20851;&#31995;&#26102;&#23588;&#20026;&#37325;&#35201;&#12290;<\/p><h3>&#23450;&#21046;&#27169;&#22411;&#26041;&#27861;<\/h3><pre><code>class User extends Model\n{\n    public function equals(User $user): bool\n    {\n        return $this-&gt;id === $user-&gt;id &amp;&amp;\n               $this-&gt;attributesToArray() == $user-&gt;attributesToArray();\n    }\n}\n\n$user1 = User::find(1);\n$user2 = User::find(1);\n\nif ($user1-&gt;equals($user2)) {\n    echo 'Users are equal.';\n}\n<\/code><\/pre><p>&#35813;&#33258;&#23450;&#20041;&#26041;&#27861;&#20801;&#35768;&#36827;&#34892;&#26356;&#20840;&#38754;&#30340;&#27604;&#36739;&#65292;&#19981;&#20165;&#32771;&#34385;&#26631;&#35782;&#31526;&#65292;&#36824;&#32771;&#34385;&#23646;&#24615;&#25968;&#32452;&#12290;<\/p><h2>&#22312;PHPUnit&#20013;&#27979;&#35797;&#27169;&#22411;&#31561;&#20215;&#24615;&#65288;Model Equivalence Testing&#65289;&#12290;<\/h2><p>&#22312;&#20351;&#29992;PHPUnit&#32534;&#20889;&#27979;&#35797;&#26102;&#65292;&#36890;&#24120;&#38656;&#35201;&#30830;&#35748;&#20004;&#20010;&#27169;&#22411;&#26159;&#21542;&#30456;&#31561;&#12290;PHPUnit&#25552;&#20379;&#20102;&#20960;&#31181;&#24110;&#21161;&#36827;&#34892;&#27492;&#25805;&#20316;&#30340;&#26029;&#35328;&#12290;<\/p><h3>&#20351;&#29992; assertEquals<\/h3><pre><code>public function testModelEquality()\n{\n    $user1 = User::find(1);\n    $user2 = User::find(1);\n\n    $this-&gt;assertEquals($user1, $user2);\n}\n<\/code><\/pre><p>&#36825;&#20010;&#26029;&#35328;&#29992;&#20110;&#26816;&#26597;&#20004;&#20010;&#21464;&#37327;&#26159;&#21542;&#20855;&#26377;&#30456;&#21516;&#30340;&#25968;&#25454;&#31867;&#22411;&#21644;&#20540;&#12290;&#22312;Eloquent&#27169;&#22411;&#20013;&#65292;&#23427;&#20250;&#27604;&#36739;&#23427;&#20204;&#30340;&#23646;&#24615;&#65292;&#21253;&#25324;&#23646;&#24615;&#21644;&#20851;&#31995;&#12290;<\/p><h2>&#26368;&#21518;&#30340;&#21457;&#35328;&#12290;<\/h2><p>&#19978;&#36848;&#31034;&#20363;&#23637;&#31034;&#20102;&#27604;&#36739;&#20004;&#20010; eloquent &#27169;&#22411;&#30340;&#22810;&#31181;&#26041;&#27861;&#12290;&#36825;&#20123;&#31574;&#30053;&#21487;&#20197;&#28151;&#21512;&#20351;&#29992;&#65292;&#24182;&#19988;&#26159;&#24320;&#21457;&#20855;&#26377;&#31934;&#32454;&#31890;&#24230;&#27169;&#22411;&#27604;&#36739;&#21151;&#33021;&#30340;&#24378;&#22823;&#24037;&#20855;&#65292;&#36866;&#29992;&#20110;&#38656;&#35201;&#24378;&#22823;&#28789;&#27963;&#24615;&#21644;&#21487;&#25193;&#23637;&#24615;&#30340; Laravel &#24212;&#29992;&#31243;&#24207;&#12290;<\/p><p>&#35760;&#24471;&#22312;&#27604;&#36739;Eloquent&#27169;&#22411;&#26102;&#20351;&#29992;&#36825;&#20123;&#26041;&#27861;&#65292;&#20197;&#36827;&#34892;&#25968;&#25454;&#23436;&#25972;&#24615;&#26816;&#26597;&#12289;&#30830;&#20445;&#27979;&#35797;&#26399;&#38388;&#30340;&#19968;&#33268;&#24615;&#65292;&#25110;&#22312;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#23454;&#29616;&#19994;&#21153;&#36923;&#36753;&#12290;&#20934;&#30830;&#27604;&#36739;&#27169;&#22411;&#30340;&#33021;&#21147;&#23545;&#20110;&#22312;&#25972;&#20010;&#24212;&#29992;&#20013;&#20445;&#25345;&#39640;&#25968;&#25454;&#21487;&#38752;&#24615;&#33267;&#20851;&#37325;&#35201;&#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;Eloquent ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#20013;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;<code>-&gt;first()<\/code>&#21644;<code>-&gt;count()<\/code>&#26041;&#27861;&#26469;&#27604;&#36739;&#20004;&#20010;&#27169;&#22411;&#23454;&#20363;&#12290;&#36825;&#37324;&#26377;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#65306;<\/p>\n<p>&#39318;&#20808;&#65292;&#20551;&#35774;&#25105;&#20204;&#26377;&#20004;&#20010;&#27169;&#22411;&#65306;<code>User<\/code> &#21644; <code>Post<\/code>&#12290;<\/p>\n<pre><code class=\"language-php\">use AppModelsUser;\nuse AppModelsPost;\n\nclass User {\n    protected $table = 'users';\n}\n\nclass Post extends User {\n    protected $fillable = ['title', 'content'];\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#21019;&#24314;&#20004;&#20010;&#29992;&#25143;&#21644;&#20004;&#31687;&#24086;&#23376;&#65306;<\/p>\n<pre><code class=\"language-php\">$user1 = User::factory()-&gt;create();\n$post1 = Post::factory()-&gt;create(['user_id' =&gt; $user1-&gt;id]);\n$post2 = Post::factory()-&gt;create(['user_id' =&gt; $user1-&gt;id]);\n\n\/\/ &#27604;&#36739;&#20004;&#20010;&#24086;&#23376;&#30340;&#20316;&#32773;&#26159;&#21542;&#30456;&#21516;\nif ($post1-&gt;author() == $post2-&gt;author()) {\n    echo \"&#24086;&#23376;&#30340;&#20316;&#32773;&#30456;&#21516;\";\n} else {\n    echo \"&#24086;&#23376;&#30340;&#20316;&#32773;&#19981;&#21516;\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>$post1-&gt;author()<\/code> &#21644; <code>$post2-&gt;author()<\/code> &#36820;&#22238;&#20102;&#23545;&#24212;&#30340;&#25991;&#31456;&#20316;&#32773;&#12290;&#22914;&#26524;&#36825;&#20004;&#20010;&#20316;&#32773;&#26159;&#30456;&#21516;&#30340;&#65292;&#37027;&#20040;&#36825;&#20010;&#26465;&#20214;&#23601;&#20250;&#25104;&#31435;&#65292;&#21542;&#21017;&#23601;&#19981;&#25104;&#31435;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#36825;&#21482;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#12290;&#22914;&#26524;&#20320;&#38656;&#35201;&#26356;&#22797;&#26434;&#30340;&#27604;&#36739;&#36923;&#36753;&#65292;&#27604;&#22914;&#23545;&#25991;&#31456;&#20869;&#23481;&#36827;&#34892;&#27604;&#36739;&#65292;&#25110;&#32773;&#22788;&#29702;&#26356;&#22810;&#31867;&#22411;&#30340;&#27604;&#36739;&#65292;&#20320;&#21487;&#33021;&#38656;&#35201;&#32534;&#20889;&#26356;&#22810;&#30340;&#20195;&#30721;&#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;Eloquent&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;where&#26041;&#27861;&#26469;&#27604;&#36739;&#20004;&#038;#20010..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-974","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\/974","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=974"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=974"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=974"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}