{"id":1013,"date":"2025-06-12T04:52:06","date_gmt":"2025-06-11T20:52:06","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/1013.html"},"modified":"2025-06-12T04:52:06","modified_gmt":"2025-06-11T20:52:06","slug":"eloquent%ef%bc%9a%e6%8e%92%e5%ba%8f%e8%a1%8c%e4%bd%86%e6%9c%ab%e5%b0%be-%e5%bc%80%e5%a4%b4%e6%9c%89%e7%a9%ba%e5%80%bc","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1013.html","title":{"rendered":"Eloquent\uff1a\u6392\u5e8f\u884c\u4f46\u672b\u5c3e\/\u5f00\u5934\u6709\u7a7a\u503c"},"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;&#20351;&#29992; Eloquent &#36827;&#34892;&#25968;&#25454;&#24211;&#25805;&#20316;&#26102;&#65292;&#22914;&#26524;&#20320;&#24076;&#26395;&#23545;&#32467;&#26524;&#36827;&#34892;&#25490;&#24207;&#65292;&#24182;&#19988;&#22788;&#29702;&#26411;&#23614;&#25110;&#24320;&#22836;&#26377;&#31354;&#20540;&#30340;&#24773;&#20917;&#65292;&#21487;&#20197;&#37319;&#21462;&#20197;&#19979;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#23450;&#20041;&#27169;&#22411;&#21644;&#26597;&#35810;<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23450;&#20041;&#20102;&#20320;&#30340;&#27169;&#22411;&#65292;&#24182;&#19988;&#26377;&#19968;&#20010;&#23383;&#27573;&#29992;&#20110;&#23384;&#20648;&#25490;&#24207;&#30340;&#20381;&#25454;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#22788;&#29702;&#31354;&#20540;<\/strong>&#65306;\n&#20351;&#29992; <code>whereNotNull<\/code> &#26041;&#27861;&#26469;&#25490;&#38500;&#31354;&#20540;&#65292;&#28982;&#21518;&#36827;&#34892;&#25490;&#24207;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#31034;&#20363;&#20195;&#30721;<\/strong>&#65306;\n&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#23454;&#29616;&#36825;&#19968;&#21151;&#33021;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">use AppModelsYourModel;\n\n\/\/ &#33719;&#21462;&#25152;&#26377;&#35760;&#24405;&#24182;&#25490;&#24207;\n$sortedRecords = YourModel::orderBy('your_column')\n    -&gt;whereNotNull('your_column')\n    -&gt;get();\n\n\/\/ &#36755;&#20986;&#25490;&#24207;&#21518;&#30340;&#35760;&#24405;\nforeach ($sortedRecords as $record) {\n    echo $record-&gt;your_column . PHP_EOL;\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65306;<\/p>\n<ul>\n<li><code>YourModel<\/code> &#26159;&#20320;&#30340;&#27169;&#22411;&#31867;&#21517;&#12290;<\/li>\n<li><code>your_column<\/code> &#26159;&#20320;&#35201;&#25490;&#24207;&#30340;&#23383;&#27573;&#21517;&#12290;<\/li>\n<li><code>whereNotNull('your_column')<\/code> &#30830;&#20445;&#21482;&#26377;&#38750;&#31354;&#20540;&#20250;&#34987;&#25490;&#24207;&#12290;<\/li>\n<\/ul>\n<p>&#36825;&#26679;&#65292;&#20320;&#23601;&#21487;&#20197;&#30830;&#20445;&#22312;&#25490;&#24207;&#36807;&#31243;&#20013;&#65292;&#26411;&#23614;&#25110;&#24320;&#22836;&#26377;&#31354;&#20540;&#30340;&#35760;&#24405;&#19981;&#20250;&#34987;&#24573;&#30053;&#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>&#24403;&#25105;&#20204;&#22788;&#29702;&#25968;&#25454;&#24211;&#26102;&#65292;&#25105;&#20204;&#36890;&#24120;&#38656;&#35201;&#20197;&#29305;&#23450;&#39034;&#24207;&#26816;&#32034;&#25968;&#25454;&#12290;&#36890;&#24120;&#65292;&#25105;&#20204;&#35201;&#26597;&#30475;&#37325;&#35201;&#30340;&#35760;&#24405;&mdash;&mdash;&#20063;&#23601;&#26159;&#35828;&#65292;&#19982;&#29992;&#25143;&#26597;&#35810;&#30456;&#20851;&#30340;&#23454;&#38469;&#20540;&#30340;&#34892;&#12290;&#28982;&#32780;&#65292;&#24403;&#26576;&#20123;&#34892;&#26377;&#31354;&#20540;&#26102;&#20250;&#21457;&#29983;&#20160;&#20040;&#65311;&#32780;&#19981;&#26159;&#25226;&#36825;&#20123;&#34892;&#28151;&#26434;&#22312;&#20854;&#20182;&#34892;&#20013;&#65292;&#19968;&#20010;&#20248;&#38597;&#30340;&#35774;&#35745;&#20250;&#25226;&#36825;&#20123;&#34892;&#25918;&#22312;&#32467;&#26524;&#30340;&#24320;&#22836;&#25110;&#32467;&#23614;&#65292;&#21462;&#20915;&#20110;&#25490;&#24207;&#39034;&#24207;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#20351;&#29992;Eloquent&#22312;Laravel&#20013;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p><p>&#35753;&#25105;&#20204;&#35814;&#32454;&#25506;&#35752;&#22914;&#20309;&#22312;&#20351;&#29992;Laravel&#30340;Eloquent ORM&#26102;&#65292;&#31934;&#30830;&#25511;&#21046;&#20174;&#25968;&#25454;&#24211;&#20013;&#26816;&#32034;&#35760;&#24405;&#30340;&#39034;&#24207;&#65292;&#24182;&#35880;&#24910;&#22788;&#29702;&#31354;&#20540;&#25110;null&#20540;&#30340;&#34892;&#12290;<\/p><h2>&#29702;&#35299;&#22522;&#26412;&#27010;&#24565;<\/h2><p>&#22312;&#25105;&#20204;&#24320;&#22987;&#20351;&#29992;&#38750;&#31354;&#20248;&#20808;&#32423;&#26469;&#35746;&#36141;&#25968;&#25454;&#20043;&#21069;&#65292;&#29702;&#35299;Eloquent&#20013;&#30340;&#25490;&#24207;&#24037;&#20316;&#21407;&#29702;&#33267;&#20851;&#37325;&#35201;&#12290;<code>orderBy()<\/code>&#19968;&#20010;&#26465;&#20214;&#35821;&#21477;&#29992;&#20110;&#25353;&#25351;&#23450;&#21015;&#23545;&#32467;&#26524;&#36827;&#34892;&#25490;&#24207;&#12290;&#20363;&#22914;&#65292;<code>User::orderBy('name')-&gt;get()<\/code>&#25353;&#22995;&#21517;&#23383;&#27597;&#39034;&#24207;&#23545;&#36820;&#22238;&#30340;&#29992;&#25143;&#36827;&#34892;&#25490;&#24207;&#12290;<\/p><pre><code>$users = User::orderBy('name')-&gt;get();\n<\/code><\/pre><p>&#22914;&#26524;&#25105;&#20204;&#35201;&#25353;&#21487;&#33021;&#21253;&#21547;&#31354;&#20540;&#65288;NULL&#65289;&#30340;&#21015;&#36827;&#34892;&#25490;&#24207;&#65292;SQL&#25968;&#25454;&#24211;&#22312;&#21319;&#24207;&#25490;&#21015;&#26102;&#20250;&#23558;NULL&#20540;&#35270;&#20026;&#20219;&#20309;&#38750;NULL&#20540;&#20197;&#19979;&#65292;&#32780;&#22312;&#38477;&#24207;&#25490;&#21015;&#26102;&#21017;&#30456;&#21453;&#12290;<\/p><h2>&#20351;&#29992;CASE&#36827;&#34892;&#33258;&#23450;&#20041;&#25490;&#24207;<\/h2><p>&#19968;&#31181;&#24120;&#29992;&#30340;&#25216;&#24039;&#26159;&#21033;&#29992;SQL&#12290;<code>CASE<\/code>&#38472;&#36848;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#20351;&#29992;&#21407;&#22987;&#34920;&#36798;&#24335;&#12290;&#36825;&#37324;&#26377;&#19968;&#20010;&#20363;&#23376;&#65292;&#21363;&#22312;&lsquo;name&rsquo;&#21015;&#20013;&#30340;&#31354;&#20540;&#20250;&#26681;&#25454;&#25490;&#24207;&#26041;&#24335;&#65288;&#21319;&#24207;&#25110;&#38477;&#24207;&#65289;&#22987;&#32456;&#25490;&#21040;&#26368;&#21518;&#12290;<\/p><pre><code>$users = User::select('*', \n                   DB::raw(\"CASE WHEN name IS NULL THEN 1 ELSE 0 END as is_null\"))\n              -&gt;orderBy('is_null')\n              -&gt;orderBy('name', 'asc')\n              -&gt;get();\n<\/code><\/pre><h2>&#20351;&#29992;&#23376;&#26597;&#35810;&#24433;&#21709;&#25490;&#24207;&#39034;&#24207;<\/h2><p>&#23376;&#26597;&#35810;&#20063;&#21487;&#20197;&#29992;&#20110;&#25511;&#21046;Eloquent&#20013;&#30340;&#25490;&#24207;&#39034;&#24207;&#12290;&#25105;&#20204;&#21487;&#20197;&#26681;&#25454;&#26469;&#33258;&#23376;&#26597;&#35810;&#30340;&#32467;&#26524;&#26469;&#23545;&#20027;&#26597;&#35810;&#36827;&#34892;&#25490;&#24207;&#65292;&#36825;&#26679;&#23601;&#21487;&#20197;&#25511;&#21046;NULL&#20540;&#30340;&#22788;&#29702;&#26041;&#24335;&#20102;&#12290;<\/p><pre><code>$users = User::orderByDesc(\n             User::select('created_at')\n                 -&gt;whereColumn('users.id', 'user_details.user_id')\n                 -&gt;orderBy('created_at', 'desc')\n                 -&gt;limit(1)\n         )\n         -&gt;get();\n<\/code><\/pre><p>&#22312;&#36825;&#37324;&#65292;&#25105;&#20204;&#23558;&#29992;&#25143;&#25353;&#20854;&#26368;&#26032;&#27963;&#21160;&#26085;&#26399;&#25490;&#24207;&#65292;&#20294;&#22914;&#26524;&#26085;&#26399;&#20026;NULL&#65292;&#21017;&#36825;&#20123;&#29992;&#25143;&#23558;&#34987;&#35270;&#20026;&#26368;&#32769;&#30340;&#36827;&#34892;&#25490;&#24207;&#12290;<\/p><h2>&#20351;&#29992;&#26465;&#20214;&#25490;&#24207;&#21644;&#39640;&#32423;Eloquent&#26597;&#35810;&#36827;&#34892;&#24212;&#29992;<\/h2><p>&#36827;&#19968;&#27493;&#32780;&#35328;&#65292;&#21487;&#20197;&#20351;&#29992;Eloquent&#30340;&#26597;&#35810;&#26500;&#24314;&#22120;&#26469;&#20248;&#21270;&#24744;&#30340;&#26597;&#35810;&#12290;<code>orderByRaw()<\/code>&#32534;&#20889;&#26356;&#22797;&#26434;&#30340;ORDER BY&#34920;&#36798;&#24335;&#30340;&#26041;&#27861;&#12290;<\/p><pre><code>$users = User::orderByRaw('ISNULL(name), name ASC')-&gt;get();\n<\/code><\/pre><p>&#36825;&#20351;&#29992;&#30340;&#26159;MySQL&#12290;<code>ISNULL()<\/code>&#20026;&#20102;&#21019;&#24314;&#19968;&#20010;&#24067;&#23572;&#26465;&#20214;&#65292;&#30830;&#20445;NULL&#20540;&#20855;&#26377;&#26368;&#20302;&#30340;&#20248;&#20808;&#32423;&#12290;<\/p><h2>&#21033;&#29992;&#33539;&#22260;&#20197;&#23454;&#29616;&#21487;&#37325;&#29992;&#24615;<\/h2><p>Eloquent&#20801;&#35768;&#20351;&#29992;&#23616;&#37096;&#20316;&#29992;&#22495;&#26469;&#23553;&#35013;&#26597;&#35810;&#36923;&#36753;&#24182;&#20351;&#20854;&#21487;&#37325;&#29992;&#12290;&#25105;&#20204;&#21487;&#20197;&#22312;&#27169;&#22411;&#20013;&#23450;&#20041;&#19968;&#20010;&#33539;&#22260;&#65292;&#20197;&#23553;&#35013;&#25105;&#20204;&#30340;&#33258;&#23450;&#20041;&#25490;&#24207;&#36923;&#36753;&#12290;&#24403;&#20320;&#38656;&#35201;&#24212;&#29992;&#36825;&#31181;&#29305;&#23450;&#30340;&#39034;&#24207;&#26102;&#65292;&#20320;&#21487;&#20197;&#31616;&#21333;&#22320;&#20351;&#29992;&#26032;&#23450;&#20041;&#30340;&#33539;&#22260;&#32780;&#19981;&#26159;&#37325;&#22797;&#25191;&#34892;&#35813;&#36923;&#36753;&#12290;<\/p><pre><code>class User extends Model\n{\n    public function scopeOrderByNullLast($query, $column, $direction = 'asc')\n    {\n        $query-&gt;orderByRaw((new static)-&gt;getNullLastOrder($column, $direction));\n    }\n\n    protected function getNullLastOrder($column, $direction)\n    {\n        \/\/ Assuming MySQL is used\n        $direction = strtolower($direction) == 'asc' ? 'ASC' : 'DESC';\n        return \"ISNULL($column), $column $direction\";\n    }\n}\n\n\/\/ You can then use the scope like this:\n$users = User::orderByNullLast('name')-&gt;get();\n<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#30830;&#20445;&#21253;&#21547;&#31354;&#20540;&#30340;&#34892;&#25353;&#36866;&#24403;&#39034;&#24207;&#25490;&#24207;&#23545;&#20110;&#25552;&#20379;&#28165;&#26224;&#19988;&#29992;&#25143;&#21451;&#22909;&#30340;&#25968;&#25454;&#21576;&#29616;&#33267;&#20851;&#37325;&#35201;&#12290;&#22312;Laravel&#30340;Eloquent ORM&#20013;&#65292;&#24744;&#26377;&#23454;&#29616;&#22797;&#26434;&#25490;&#24207;&#31574;&#30053;&#30340;&#28789;&#27963;&#24615;&#65292;&#36825;&#20123;&#31574;&#30053;&#23562;&#37325;&#24744;&#30340;&#25968;&#25454;&#30340;&#31354;&#38388;&#36923;&#36753;&#12290;&#26412;&#25945;&#31243;&#28085;&#30422;&#20102;&#20960;&#31181;&#26041;&#27861;&#65292;&#20174;&#22522;&#26412;&#30340;CASE&#35821;&#21477;&#21040;&#39640;&#32423;&#30340;&#23376;&#26597;&#35810;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;&#36825;&#20123;&#26041;&#27861;&#26469;&#35299;&#20915;&#22788;&#29702;&#25968;&#25454;&#26102;&#30340;&#24212;&#29992;&#31243;&#24207;&#29305;&#23450;&#38656;&#27714;&#12290;<\/p><p>&#20351;&#29992;&#36825;&#20123;&#25216;&#24039;&#24182;&#21033;&#29992;&#20316;&#29992;&#22495;&#30340;&#21147;&#37327;&#20197;&#22686;&#21152;&#20248;&#38597;&#24615;&#21644;&#21487;&#37325;&#29992;&#24615;&#65292;&#24744;&#30340;Eloquent&#26597;&#35810;&#21487;&#20197;&#30830;&#20445;&#20026;&#29992;&#25143;&#25552;&#20379;&#26377;&#24847;&#20041;&#21644;&#30452;&#35266;&#30340;&#25968;&#25454;&#25490;&#24207;&#65292;&#21363;&#20351;&#22312;&#22788;&#29702;&#31354;&#20540;&#26102;&#20063;&#26159;&#22914;&#27492;&#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>&#36825;&#20010;&#38382;&#39064;&#26159;&#20851;&#20110;Eloquent ORM&#65288;Eloquent PHP&#65289;&#21644;PHP&#30340;SQL&#26597;&#35810;&#30340;&#12290;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#27169;&#22411;<code>User<\/code>&#65292;&#23427;&#26377;&#19968;&#20010;&#23383;&#27573;<code>lastName<\/code>&#65292;&#22914;&#26524;&#36825;&#20010;&#23383;&#27573;&#20026;&#31354;&#65292;&#25105;&#20204;&#24212;&#35813;&#22914;&#20309;&#22788;&#29702;&#65311;<\/p>\n<p>&#39318;&#20808;&#65292;&#35753;&#25105;&#20204;&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;&#29992;&#25143;&#27169;&#22411;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppModels;\n\nuse IlluminateDatabaseEloquentModel;\nuse IlluminateDatabaseEloquentSoftDeletes;\n\nclass User extends Model\n{\n    use SoftDeletes;\n\n    protected $table = 'users';\n    protected $dates = ['deleted_at'];\n\n    public function getLastNameAttribute($value)\n    {\n        return $this-&gt;attributes['lastName'];\n    }\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#25105;&#20204;&#38656;&#35201;&#32534;&#20889;&#19968;&#20010;&#26041;&#27861;&#26469;&#25490;&#24207;&#29992;&#25143;&#21015;&#34920;&#65292;&#20294;&#21482;&#32771;&#34385;&#38750;&#31354;&#30340;<code>lastName<\/code>&#23383;&#27573;&#12290;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;Eloquent ORM&#30340;<code>orderBy()<\/code>&#26041;&#27861;&#36827;&#34892;&#25490;&#24207;&#65292;&#24182;&#36890;&#36807;<code>where()<\/code>&#26041;&#27861;&#36807;&#28388;&#20986;&#38750;&#31354;&#30340;&#35760;&#24405;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#20363;&#23376;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#20004;&#20010;&#29992;&#25143;&#65292;&#20182;&#20204;&#30340;`lastName`&#23383;&#27573;&#22914;&#19979;&#65306;\n$users = [\n    ['firstName' =&gt; 'John', 'lastName' =&gt; null],\n    ['firstName' =&gt; 'Jane', 'lastName' =&gt; 'Doe'],\n];\n\n$userModel = new User();\n\n\/\/ &#25490;&#24207;&#29992;&#25143;&#21015;&#34920;&#65292;&#20294;&#21482;&#32771;&#34385;&#38750;&#31354;&#30340;lastName&#23383;&#27573;\nusort($users, function ($a, $b) use ($userModel) {\n    $lastNameA = $userModel-&gt;getLastNameAttribute($a);\n    $lastNameB = $userModel-&gt;getLastNameAttribute($b);\n\n    if ($lastNameA === null &amp;&amp; $lastNameB !== null) {\n        return -1; \/\/ &#23558;&#31532;&#19968;&#20010;&#29992;&#25143;&#25490;&#22312;&#21069;&#38754;\n    } elseif ($lastNameA !== null &amp;&amp; $lastNameB === null) {\n        return 1; \/\/ &#23558;&#31532;&#20108;&#20010;&#29992;&#25143;&#25490;&#22312;&#21518;&#38754;\n    }\n\n    return strcmp($lastNameA, $lastNameB); \/\/ &#20351;&#29992;&#23383;&#31526;&#20018;&#27604;&#36739;&#20989;&#25968;&#36827;&#34892;&#25490;&#24207;\n});\n\nprint_r($users);<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#33719;&#21462;&#20102;&#20004;&#20010;&#29992;&#25143;&#23545;&#35937;&#65292;&#28982;&#21518;&#20351;&#29992;<code>usort()<\/code>&#26041;&#27861;&#23545;&#23427;&#20204;&#36827;&#34892;&#25490;&#24207;&#12290;&#25105;&#20204;&#22312;&#33258;&#23450;&#20041;&#25490;&#24207;&#20989;&#25968;&#20013;&#27604;&#36739;&#20102;<code>lastName<\/code>&#23646;&#24615;&#65292;&#26681;&#25454;&#23427;&#20204;&#26159;&#21542;&#20026;&#31354;&#65292;&#20915;&#23450;&#24212;&#35813;&#23558;&#21738;&#20010;&#29992;&#25143;&#25918;&#22312;&#21069;&#38754;&#36824;&#26159;&#21518;&#38754;&#12290;<\/p>\n<p>&#35831;&#27880;&#24847;&#65292;&#36825;&#21482;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#12290;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#20320;&#21487;&#33021;&#38656;&#35201;&#26356;&#22797;&#26434;&#30340;&#36923;&#36753;&#26469;&#22788;&#29702;&#19981;&#21516;&#30340;&#24773;&#20917;&#65292;&#27604;&#22914;&#22788;&#29702;&#22810;&#20010;&#26465;&#20214;&#30340;&#25490;&#24207;&#31561;&#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;&#20351;&#29992; Eloquent &#36827;&#34892;&#25968;&#25454;&#24211;&#25805;&#20316;&#26102;&#65292;&#22914;&#26524;&#20320;&#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-1013","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\/1013","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=1013"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1013"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1013"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}