{"id":1005,"date":"2025-06-12T04:41:24","date_gmt":"2025-06-11T20:41:24","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/1005.html"},"modified":"2025-06-12T04:41:24","modified_gmt":"2025-06-11T20:41:24","slug":"laravel-eloquent%ef%bc%9a%e5%a6%82%e4%bd%95%e8%bd%ac%e6%8d%a2%e6%a8%a1%e5%9e%8b%e5%b1%9e%e6%80%a7%e7%9a%84%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1005.html","title":{"rendered":"Laravel Eloquent\uff1a\u5982\u4f55\u8f6c\u6362\u6a21\u578b\u5c5e\u6027\u7684\u6570\u636e\u7c7b\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>Laravel &#26159;&#19968;&#20010;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#29992;&#20110;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#12290;Eloquent &#26159; Laravel &#25552;&#20379;&#30340;&#19968;&#20010; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#65292;&#23427;&#20801;&#35768;&#24320;&#21457;&#32773;&#36890;&#36807;&#31616;&#21333;&#30340;&#20195;&#30721;&#25805;&#20316;&#25968;&#25454;&#24211;&#34920;&#20013;&#30340;&#25968;&#25454;&#12290;&#22312;&#20351;&#29992; Eloquent &#36827;&#34892;&#25968;&#25454;&#22788;&#29702;&#26102;&#65292;&#26377;&#26102;&#38656;&#35201;&#23558;&#27169;&#22411;&#23646;&#24615;&#30340;&#25968;&#25454;&#31867;&#22411;&#36827;&#34892;&#36716;&#25442;&#65292;&#20197;&#28385;&#36275;&#29305;&#23450;&#30340;&#38656;&#27714;&#12290;&#19979;&#38754;&#26159;&#19968;&#20123;&#24120;&#35265;&#30340;&#26041;&#27861;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p>\n<h3>1. &#20351;&#29992; <code>castAs<\/code> &#26041;&#27861;<\/h3>\n<p><code>castAs<\/code> &#26041;&#27861;&#21487;&#20197;&#29992;&#26469;&#23558;&#27169;&#22411;&#30340;&#26576;&#20010;&#23646;&#24615;&#24378;&#21046;&#36716;&#25442;&#20026;&#25351;&#23450;&#30340;&#25968;&#25454;&#31867;&#22411;&#12290;&#20363;&#22914;&#65292;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#29992;&#25143;&#27169;&#22411;&#65292;&#20854;&#20013;&#26377;&#19968;&#20010; <code>age<\/code> &#23646;&#24615;&#65292;&#20294;&#25105;&#20204;&#38656;&#35201;&#23558;&#20854;&#36716;&#25442;&#20026;&#25972;&#25968;&#31867;&#22411;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppUser;\n\n$user = User::find(1);\n$age = $user-&gt;age;\necho gettype($age); \/\/ &#36755;&#20986;: string<\/code><\/pre>\n<p>&#25105;&#20204;&#21487;&#20197;&#20351;&#29992; <code>castAs<\/code> &#26041;&#27861;&#23558; <code>age<\/code> &#23646;&#24615;&#36716;&#25442;&#20026;&#25972;&#25968;&#31867;&#22411;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppUser;\n\n$user = User::find(1);\n$age = $user-&gt;age;\n$age = $user-&gt;castAs('integer');\necho gettype($age); \/\/ &#36755;&#20986;: integer<\/code><\/pre>\n<h3>2. &#20351;&#29992; <code>setAttribute<\/code> &#26041;&#27861;<\/h3>\n<p><code>setAttribute<\/code> &#26041;&#27861;&#21487;&#20197;&#29992;&#26469;&#35774;&#32622;&#27169;&#22411;&#30340;&#26576;&#20010;&#23646;&#24615;&#65292;&#24182;&#19988;&#21487;&#20197;&#25351;&#23450;&#20854;&#25968;&#25454;&#31867;&#22411;&#12290;&#20363;&#22914;&#65292;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#29992;&#25143;&#27169;&#22411;&#65292;&#20854;&#20013;&#26377;&#19968;&#20010; <code>email<\/code> &#23646;&#24615;&#65292;&#20294;&#25105;&#20204;&#24076;&#26395;&#23558;&#20854;&#36716;&#25442;&#20026;&#37038;&#31665;&#22320;&#22336;&#26684;&#24335;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppUser;\n\n$user = User::find(1);\n$email = 'example@example.com';\n$user-&gt;email = $email;\n$user-&gt;save();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>email<\/code> &#23646;&#24615;&#26159;&#23383;&#31526;&#20018;&#31867;&#22411;&#30340;&#65292;&#20294;&#26159;&#25105;&#20204;&#22312;&#20445;&#23384;&#25968;&#25454;&#20043;&#21069;&#23558;&#20854;&#36716;&#25442;&#20026;&#20102;&#37038;&#31665;&#22320;&#22336;&#26684;&#24335;&#12290;<\/p>\n<h3>3. &#20351;&#29992; <code>toArray<\/code> &#26041;&#27861;<\/h3>\n<p><code>toArray<\/code> &#26041;&#27861;&#21487;&#20197;&#29992;&#26469;&#23558;&#27169;&#22411;&#36716;&#25442;&#20026;&#25968;&#32452;&#24418;&#24335;&#65292;&#28982;&#21518;&#21487;&#20197;&#30452;&#25509;&#20462;&#25913;&#25968;&#32452;&#20013;&#30340;&#25968;&#25454;&#31867;&#22411;&#12290;&#20363;&#22914;&#65292;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#29992;&#25143;&#27169;&#22411;&#65292;&#20854;&#20013;&#26377;&#19968;&#20010; <code>age<\/code> &#23646;&#24615;&#65292;&#20294;&#25105;&#20204;&#24076;&#26395;&#23558;&#20854;&#36716;&#25442;&#20026;&#25972;&#25968;&#31867;&#22411;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppUser;\n\n$user = User::find(1);\n$data = $user-&gt;toArray();\n$data['age'] = (int)$data['age'];\n$user-&gt;fill($data);\n$user-&gt;save();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#23558;&#27169;&#22411;&#36716;&#25442;&#20026;&#25968;&#32452;&#65292;&#28982;&#21518;&#23558; <code>age<\/code> &#23646;&#24615;&#36716;&#25442;&#20026;&#25972;&#25968;&#31867;&#22411;&#65292;&#26368;&#21518;&#20877;&#27425;&#22635;&#20805;&#21040;&#27169;&#22411;&#20013;&#24182;&#20445;&#23384;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992; <code>castAs<\/code> &#26041;&#27861;&#23558;&#27169;&#22411;&#23646;&#24615;&#30340;&#25968;&#25454;&#31867;&#22411;&#36827;&#34892;&#36716;&#25442;&#65306;<\/p>\n<pre><code class=\"language-php\">use AppUser;\n\n\/\/ &#33719;&#21462;&#29992;&#25143;&#27169;&#22411;&#23454;&#20363;\n$user = User::find(1);\n\n\/\/ &#23581;&#35797;&#30452;&#25509;&#33719;&#21462; age &#23646;&#24615;&#65292;&#36755;&#20986;&#23383;&#31526;&#20018;&#31867;&#22411;\n$age = $user-&gt;age;\necho gettype($age); \/\/ &#36755;&#20986;: string\n\n\/\/ &#20351;&#29992; castAs &#26041;&#27861;&#23558; age &#23646;&#24615;&#36716;&#25442;&#20026;&#25972;&#25968;&#31867;&#22411;\n$age = $user-&gt;castAs('integer');\necho gettype($age); \/\/ &#36755;&#20986;: integer\n\n\/\/ &#25171;&#21360; updated_at &#23646;&#24615;&#30340;&#20540;\necho $user-&gt;updated_at; \/\/ &#36755;&#20986;: 2023-04-01 12:34:56<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#23558;&#27169;&#22411;&#23646;&#24615;&#30340;&#25968;&#25454;&#31867;&#22411;&#36827;&#34892;&#36716;&#25442;&#65292;&#20197;&#28385;&#36275;&#19981;&#21516;&#30340;&#38656;&#27714;&#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>&#38543;&#30528;&#22797;&#26434;Web&#24212;&#29992;&#30340;&#20852;&#36215;&#65292;&#31649;&#29702;&#20851;&#31995;&#22411;&#25968;&#25454;&#24211;&#20013;&#30340;&#25968;&#25454;&#31867;&#22411;&#21464;&#24471;&#33267;&#20851;&#37325;&#35201;&#12290;Laravel&#65292;&#19968;&#20010;&#20248;&#38597;&#30340;PHP&#26694;&#26550;&#65292;&#36890;&#36807;&ldquo;Eloquent&rdquo;&#31616;&#21270;&#20102;&#36825;&#19968;&#31649;&#29702;&#24037;&#20316;&#65292;&#36825;&#26159;&#19968;&#20010;&#23545;&#35937;-&#20851;&#31995;&#26144;&#23556;&#65288;ORM&#65289;&#12290;Eloquent&#20801;&#35768;&#24744;&#36890;&#36807;&#20351;&#29992;&#27169;&#22411;&#31867;&#26469;&#26080;&#32541;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#12290;&#22312;&#36825;&#31687;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558; walkthrough &#25968;&#25454;&#31867;&#22411;&#36716;&#25442;&#22312;Laravel Eloquent&#20013;&#30340;&#36807;&#31243;&#65292;&#20197;&#30830;&#20445;&#22312;&#25972;&#20010;&#24212;&#29992;&#31243;&#24207;&#20013;&#25968;&#25454;&#30340;&#19968;&#33268;&#24615;&#21644;&#23436;&#25972;&#24615;&#12290;<\/p><p>&#22312;&#20351;&#29992;Eloquent&#27169;&#22411;&#23454;&#20363;&#30340;&#23646;&#24615;&#20540;&#33719;&#21462;&#25110;&#35774;&#32622;&#26102;&#65292;&#21487;&#20197;&#36890;&#36807;&#23450;&#20041;&#31867;&#22411;&#36716;&#25442;&#26469;&#30830;&#20445;&#23427;&#20204;&#30340;&#25968;&#25454;&#31867;&#22411;&#27491;&#30830;&#12290;&#31867;&#22411;&#36716;&#25442;&#22312;&#22788;&#29702;&#19981;&#21516;&#25968;&#25454;&#31867;&#22411;&#65288;&#22914;&#24067;&#23572;&#12289;&#25972;&#25968;&#12289;&#28014;&#28857;&#25968;&#12289;&#25968;&#32452;&#12289;JSON&#29978;&#33267;&#26085;&#26399;&#21644;&#26102;&#38388;&#23545;&#35937;&#65289;&#26102;&#21457;&#25381;&#20316;&#29992;&#12290;&#35753;&#25105;&#20204;&#25506;&#35752;&#19968;&#19979;&#23646;&#24615;&#31867;&#22411;&#36716;&#25442;&#30340;&#27010;&#24565;&#12289;&#20854;&#29992;&#36884;&#20197;&#21450;&#22914;&#20309;&#22312;&#24744;&#30340;Laravel&#27169;&#22411;&#20013;&#23454;&#29616;&#23427;&#12290;<\/p><h2>&#29702;&#35299;&#23646;&#24615;&#36716;&#25442;<\/h2><p>&#22312;Eloquent&#20013;&#65292;&#23646;&#24615;&#30340;&#36171;&#20540;&#24847;&#21619;&#30528;&#22312;&#23384;&#20648;&#25110;&#20174;&#25968;&#25454;&#24211;&#26816;&#32034;&#23427;&#20043;&#21069;&#23558;&#35813;&#23646;&#24615;&#36716;&#25442;&#20026;&#24120;&#35265;&#30340;&#25968;&#25454;&#31867;&#22411;&#12290;Eloquent&#25552;&#20379;&#20102;&#19968;&#20010;&#26041;&#20415;&#30340;&#23646;&#24615;&#36171;&#20540;&#21151;&#33021;&#65292;&#20801;&#35768;&#24744;&#23450;&#20041;&#27599;&#20010;&#23646;&#24615;&#24212;&#22914;&#20309;&#22312;&#20174;&#25968;&#25454;&#24211;&#26816;&#32034;&#36824;&#26159;&#35774;&#32622;&#21040;&#25968;&#25454;&#24211;&#26102;&#34987;&#36171;&#20540;&#12290;<\/p><p>&#35753;&#25105;&#20204;&#32771;&#34385;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#65306;&#20551;&#35774;&#24744;&#26377;&#19968;&#20010;&#21517;&#20026;&ldquo;&#29992;&#25143;&rdquo;&#30340;&#27169;&#22411;&#65288;User&#65289;&#65292;&#20854;&#20013;&#21253;&#21547;&#19968;&#20010;&#23646;&#24615;&ldquo;&#26159;&#21542;&#35746;&#38405;&rdquo;&#65292;&#35813;&#23646;&#24615;&#22312;&#25968;&#25454;&#24211;&#20013;&#23384;&#20648;&#20026;&#25972;&#25968;&#65288;1&#34920;&#31034;&#30495;&#65292;0&#34920;&#31034;&#20551;&#65289;&#12290;&#24403;&#24744;&#22312;&#24212;&#29992;&#31243;&#24207;&#20013;&#19982;User&#23454;&#20363;&#20132;&#20114;&#26102;&#65292;&#36890;&#24120;&#38656;&#35201;&#25163;&#21160;&#23558;&#20854;&#36716;&#25442;&#20026;&#24067;&#23572;&#20540;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;Eloquent&#30340;&#31867;&#22411;&#25552;&#31034;&#65288;casting&#65289;&#21151;&#33021;&#27966;&#19978;&#20102;&#29992;&#22330;&#12290;&#36890;&#36807;&#22312;User&#27169;&#22411;&#20013;&#23450;&#20041;&#36825;&#20010;&#23646;&#24615;&#30340;&#31867;&#22411;&#25552;&#31034;&#65292;&#24744;&#21487;&#20197;&#20687;&#22788;&#29702;&#24067;&#23572;&#20540;&#19968;&#26679;&#19982;&ldquo;&#26159;&#21542;&#35746;&#38405;&rdquo;&#36827;&#34892;&#20132;&#20114;&#12290;<\/p><h2>&#22914;&#20309;&#23450;&#20041;&#27169;&#22411;&#20013;&#30340;&#31867;&#22411;&#65288;Casts&#65289;<\/h2><p>&#21578;&#35785; eloquent &#22914;&#20309;&#35774;&#32622;&#23646;&#24615;&#65292;&#35831;&#22312;&#27169;&#22411;&#20013;&#28155;&#21152;&#19968;&#20010; $casts &#23646;&#24615;&#65306;<\/p><pre><code>class User extends Model {\n    protected $casts = [\n        'is_subscribed' =&gt; 'boolean',\n    ];\n}\n<\/code><\/pre><p>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#38382;&#39064;&#27809;&#26377;&#23436;&#20840;&#34920;&#36798;&#28165;&#26970;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#24744;&#30340;&#38656;&#27714;&#12290;<code>$casts<\/code>&#23646;&#24615;&#24212;&#35813;&#26159;&#19968;&#20010;&#25968;&#32452;&#65292;&#38190;&#20026;&#35201;&#36716;&#25442;&#30340;&#23646;&#24615;&#21517;&#31216;&#65292;&#20540;&#20026;&#20320;&#35201;&#36716;&#25442;&#30340;&#31867;&#22411;&#12290;Laravel &#20013;&#21487;&#29992;&#30340;&#36716;&#25442;&#31867;&#22411;&#21253;&#25324; &#8216;int&#8217;&#12289;&#8217;real&#8217;&#12289;&#8217;float&#8217;&#12289;&#8217;double&#8217;&#12289;&#8217;string&#8217;&#12289;&#8217;bool&#8217;&#65288;&#27880;&#24847;&#65306;&#24067;&#23572;&#31867;&#22411;&#22312; Laravel &#20013;&#34987;&#31216;&#20026; &#8216;boolean&#8217;&#65289;&#21644; &#8216;object&#8217; &#31561;&#12290;<\/p><h2>&#39640;&#32423;&#38136;&#36896;&#65306;&#33258;&#23450;&#20041;&#38136;&#20214;&#31867;<\/h2><p>Laravel &#20801;&#35768;&#36890;&#36807;&#23454;&#29616; Cast &#31867;&#30340;&#31867;&#26469;&#23450;&#20041;&#33258;&#23450;&#20041;&#36716;&#25442;&#31867;&#22411;&#12290;<code>CastsAttributes<\/code>&#25509;&#21475;&#12290;&#36825;&#31181;&#26041;&#27861;&#36866;&#29992;&#20110;&#22788;&#29702;&#26356;&#22797;&#26434;&#30340;&#21453;&#23556;&#22330;&#26223;&#12290;&#35753;&#25105;&#20204;&#21019;&#24314;&#19968;&#20010;&#33258;&#23450;&#20041;&#30340;&#21453;&#23556;&#65292;&#35813;&#21453;&#23556;&#21487;&#20197;&#33258;&#21160;&#23558;JSON&#23646;&#24615;&#24207;&#21015;&#21270;&#21644;&#21453;&#24207;&#21015;&#21270;&#20026;&#29305;&#23450;&#30340;PHP&#23545;&#35937;&#12290;<\/p><pre><code>use IlluminateContractsDatabaseEloquentCastsAttributes;\n\nclass AddressCast implements CastsAttributes\n{\n    public function get($model, $key, $value, $attributes)\n    {\n        return new Address(json_decode($value, true));\n    }\n\n    public function set($model, $key, $value, $attributes)\n    {\n        return json_encode($value);\n    }\n}\n\nclass User extends Model {\n    protected $casts = [\n        'address' =&gt; AddressCast::class,\n    ];\n}\n<\/code><\/pre><p>&#29616;&#22312;&#65292;&#27599;&#24403;&#20174;User&#27169;&#22411;&#33719;&#21462;&lsquo;&#22320;&#22336;&rsquo;&#23646;&#24615;&#26102;&#65292;&#23427;&#20250;&#36820;&#22238;&#19968;&#20010;Address&#23545;&#35937;&#65292;&#32780;&#24403;&#20320;&#35774;&#32622;&#35813;&#23646;&#24615;&#26102;&#65292;&#20063;&#20250;&#21457;&#29983;&#30456;&#21453;&#30340;&#24773;&#20917;&#12290;<\/p><h2>&#29255;&#22330;&#25490;&#26399;&#21644;&#26102;&#38388;<\/h2><p>Eloquent &#20063;&#25552;&#20379;&#20102;&#19968;&#20010;&#19987;&#38376;&#30340;&#31867;&#22411;&#65292;&#29992;&#20110;&#22788;&#29702;&#26085;&#26399;&#21644;&#26102;&#38388;&#65292;&#35813;&#31867;&#22411;&#36820;&#22238;&#26085;&#26399;&#21644;&#26102;&#38388;&#23454;&#20363;&#12290;<code>Carbon<\/code>&#36825;&#26159;&#19968;&#20010;PHP&#26085;&#26399;&#22788;&#29702;&#24211;&#12290;&#36825;&#24847;&#21619;&#30528;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#36827;&#34892;&#26085;&#26399;&#35745;&#31639;&#12289;&#26684;&#24335;&#21270;&#21644;&#25805;&#20316;&#65292;&#23601;&#20687;&#36825;&#26679;&#65306;<\/p><pre><code>class User extends Model {\n    protected $casts = [\n        'created_at' =&gt; 'datetime:Y-m-d', \/\/ Will return a formatted date\n    ];\n}\n<\/code><\/pre><p>&#22914;&#26524;&#21482;&#38656;&#35201;&#23450;&#21046;&#26085;&#26399;&#23646;&#24615;&#30340;&#26684;&#24335;&#65292;Laravel &#25552;&#20379;&#20102;&#30456;&#24212;&#30340;&#21151;&#33021;&#12290;<code>$dateFormat<\/code>&#22312;&#24744;&#30340;&#27169;&#22411;&#20013;&#21487;&#35774;&#32622;&#30340;&#23646;&#24615;&#65306;<\/p><pre><code>class User extends Model {\n    protected $dateFormat = 'U';\n}\n<\/code><\/pre><p>&#36825;&#23558;&#30830;&#20445;&#26816;&#32034;&#21040;&#30340;&#25968;&#25454;&#26684;&#24335;&#20026;Unix&#26102;&#38388;&#25139;&#12290;&#35831;&#27880;&#24847;&#65292;&#23450;&#20041;&#19968;&#20010;Unix&#26102;&#38388;&#25139;&#38656;&#35201;&#27880;&#24847;&#20197;&#19979;&#20960;&#28857;&#65306;&#39318;&#20808;&#65292;&#23427;&#34920;&#31034;&#33258;1970&#24180;1&#26376;1&#26085;&#21320;&#22812;&#65288;UTC&#65289;&#20197;&#26469;&#30340;&#31186;&#25968;&#65307;&#20854;&#27425;&#65292;&#35201;&#26681;&#25454;&#31995;&#32479;&#30340;&#26102;&#38388;&#21306;&#35774;&#32622;&#36827;&#34892;&#35843;&#25972;&#65307;&#26368;&#21518;&#65292;&#35201;&#27880;&#24847;&#22788;&#29702;&#38384;&#24180;&#30340;&#29305;&#27530;&#35268;&#21017;&#12290;<code>$dateFormat<\/code>&#20250;&#24433;&#21709;&#25968;&#25454;&#24211;&#20013;&#26085;&#26399;&#30340;&#23384;&#20648;&#21644;&#20174;&#25968;&#25454;&#24211;&#20013;&#26816;&#32034;&#30340;&#26041;&#24335;&#12290;<\/p><h2>&#22788;&#29702;JSON<\/h2><p>&#37492;&#20110;JSON&#25968;&#25454;&#32467;&#26500;&#30340;&#26222;&#36941;&#24615;&#65292;Laravel&#25552;&#20379;&#20102;&#31616;&#21333;&#30340;&#26041;&#27861;&#26469;&#23558;&#23646;&#24615;&#36716;&#25442;&#20026;JSON&#21644;&#21453;&#20043;&#12290;&#36825;&#20801;&#35768;&#24744;&#22312;&#25968;&#25454;&#24211;&#20013;&#23384;&#20648;&#25968;&#32452;&#25110;&#23545;&#35937;&#20316;&#20026;JSON&#23383;&#31526;&#20018;&#65292;&#24182;&#19988;&#24403;&#35775;&#38382;&#30456;&#20851;&#23646;&#24615;&#26102;&#33258;&#21160;&#23558;&#20854;&#36820;&#22238;&#20026;PHP&#25968;&#32452;&#25110;&#23545;&#35937;&#12290;<\/p><pre><code>class User extends Model {\n    protected $casts = [\n        'options' =&gt; 'array',\n    ];\n}\n<\/code><\/pre><p>&#24403;&ldquo;options&rdquo;&#23646;&#24615;&#34987;&#36716;&#25442;&#20026;&#25968;&#32452;&#26102;&#65292;&#20320;&#21487;&#20197;&#20687;&#35775;&#38382;&#26222;&#36890;&#30340;PHP&#25968;&#32452;&#19968;&#26679;&#30452;&#25509;&#35775;&#38382;&#25968;&#25454;&#65292;&#24182;&#19988;&#24403;&#27169;&#22411;&#20445;&#23384;&#21040;&#25968;&#25454;&#24211;&#26102;&#65292;&#20219;&#20309;&#26356;&#25913;&#37117;&#20250;&#33258;&#21160;&#36716;&#25442;&#20026;JSON&#23383;&#31526;&#20018;&#12290;<\/p><p>&#36825;&#26159;&#25945;&#31243;&#30340;&#32467;&#26463;&#65292;&#31069;&#20320;&#22312;&#32534;&#31243;&#20013;&#19968;&#20999;&#39034;&#21033;&#65292;&#24841;&#24555;&#30340;&#19968;&#22825;&#65281;<\/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>Laravel&#30340;Eloquent ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#25552;&#20379;&#20102;&#22810;&#31181;&#26041;&#27861;&#26469;&#22788;&#29702;&#21644;&#25805;&#20316;&#25968;&#25454;&#65292;&#21253;&#25324;&#23558;&#27169;&#22411;&#23646;&#24615;&#30340;&#20540;&#20174;&#19968;&#31181;&#31867;&#22411;&#36716;&#25442;&#20026;&#21478;&#19968;&#31181;&#31867;&#22411;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992;Eloquent&#36827;&#34892;&#36825;&#31181;&#36716;&#25442;&#30340;&#19968;&#20010;&#20363;&#23376;&#65306;<\/p>\n<h3>1. &#23450;&#20041;&#27169;&#22411;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026;<code>User<\/code>&#30340;&#27169;&#22411;&#65292;&#23427;&#26377;&#19977;&#20010;&#23383;&#27573;&#65306;<code>name<\/code>, <code>email<\/code> &#21644; <code>password<\/code>&#12290;<\/p>\n<pre><code class=\"language-php\">class User extends Model {\n    protected $table = 'users';\n    protected $fillable = ['name', 'email', 'password'];\n}<\/code><\/pre>\n<h3>2. &#20351;&#29992;Eloquent&#36716;&#25442;&#23646;&#24615;&#31867;&#22411;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#35201;&#23558;&#29992;&#25143;&#30340;&#21517;&#23383;&#21644;&#23494;&#30721;&#23384;&#20648;&#20026;&#23383;&#31526;&#20018;&#65292;&#32780;&#30005;&#23376;&#37038;&#20214;&#22320;&#22336;&#21017;&#23384;&#20648;&#20026;&#26085;&#26399;&#26102;&#38388;&#26684;&#24335;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#23450;&#20041;&#19968;&#20010;&#26032;&#30340;&#23383;&#27573;&#29992;&#20110;&#23384;&#20648;&#30005;&#23376;&#37038;&#20214;&#22320;&#22336;&#20316;&#20026;&#26085;&#26399;&#26102;&#38388;&#12290;<\/p>\n<pre><code class=\"language-php\">protected $casts = [\n    'email' =&gt; 'datetime',\n];<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#25105;&#20204;&#21487;&#20197;&#26356;&#26032;&#25105;&#20204;&#30340;<code>User<\/code>&#27169;&#22411;&#20197;&#28155;&#21152;&#36825;&#20010;&#26032;&#23383;&#27573;&#65292;&#24182;&#23558;&#20854;&#35774;&#32622;&#20026;&#26085;&#26399;&#26102;&#38388;&#26684;&#24335;&#12290;<\/p>\n<pre><code class=\"language-php\">class User extends Model {\n    \/\/ ...\n    protected $casts = [\n        'email' =&gt; 'datetime',\n    ];\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#24403;&#25105;&#20204;&#21019;&#24314;&#26032;&#30340;<code>User<\/code>&#23454;&#20363;&#26102;&#65292;&#22914;&#26524;&#30005;&#23376;&#37038;&#20214;&#22320;&#22336;&#26159;&#23383;&#31526;&#20018;&#65292;&#21017;&#23427;&#20250;&#34987;&#36716;&#25442;&#20026;&#26085;&#26399;&#26102;&#38388;&#26684;&#24335;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20026;&#20102;&#28436;&#31034;&#19978;&#36848;&#26356;&#25913;&#30340;&#23454;&#38469;&#25928;&#26524;&#65292;&#35831;&#21442;&#32771;&#19979;&#38754;&#30340;&#31034;&#20363;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;User&#23454;&#20363;\n$user = new User([\n    'name' =&gt; 'John Doe',\n    'email' =&gt; 'johndoe@example.com',\n]);\n\n\/\/ &#23558;&#30005;&#23376;&#37038;&#20214;&#22320;&#22336;&#35774;&#32622;&#20026;&#26085;&#26399;&#26102;&#38388;&#26684;&#24335;\nif (isset($user-&gt;email)) {\n    $user-&gt;email = Carbon::parse($user-&gt;email);\n}\n\n\/\/ &#25171;&#21360;&#20986;&#29992;&#25143;&#30340;&#20449;&#24687;\necho \"Name: {$user-&gt;name}n\";\necho \"Email: {$user-&gt;email-&gt;format('Y-m-d H:i:s')}n\";\necho \"Password: {$user-&gt;password}n\";\n\n\/\/ &#36755;&#20986;&#32467;&#26524;&#65306;\n\/\/ Name: John Doe\n\/\/ Email: 2023-04-05 12:34:56\n\/\/ Password: **********<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#23558;&#30005;&#23376;&#37038;&#20214;&#22320;&#22336;&#35774;&#32622;&#20026;&#26085;&#26399;&#26102;&#38388;&#26684;&#24335;&#65292;&#20174;&#32780;&#30830;&#20445;&#25105;&#20204;&#22312;&#25968;&#25454;&#24211;&#20013;&#30340;&#35760;&#24405;&#22987;&#32456;&#26159;&#26377;&#25928;&#30340;&#26085;&#26399;&#26102;&#38388;&#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 &#26159;&#19968;&#20010;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#29992;&#20110;&#26500;&#24314; Web &#24212;&#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-1005","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\/1005","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=1005"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1005"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1005"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}