{"id":967,"date":"2025-06-12T03:48:17","date_gmt":"2025-06-11T19:48:17","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/967.html"},"modified":"2025-06-12T03:48:17","modified_gmt":"2025-06-11T19:48:17","slug":"%e5%9c%a8eloquent%e4%b8%ad%e5%a4%84%e7%90%86json%e5%88%97%ef%bc%9a%e5%ae%9e%e7%94%a8%e6%8c%87%e5%8d%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/967.html","title":{"rendered":"\u5728Eloquent\u4e2d\u5904\u7406JSON\u5217\uff1a\u5b9e\u7528\u6307\u5357"},"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>&#26631;&#39064;&#65306;&#22312;Eloquent&#20013;&#22788;&#29702;JSON&#21015;&#65306;&#23454;&#29992;&#25351;&#21335;<\/p>\n<p>&#22312;&#29616;&#20195;Web&#24320;&#21457;&#20013;&#65292;&#20351;&#29992;ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#26694;&#26550;&#22914;Laravel&#30340;Eloquent&#36827;&#34892;&#25968;&#25454;&#24211;&#25805;&#20316;&#21464;&#24471;&#36234;&#26469;&#36234;&#24120;&#35265;&#12290;JSON&#21015;&#26159;Eloquent&#30340;&#19968;&#20010;&#24378;&#22823;&#21151;&#33021;&#65292;&#21487;&#20197;&#35753;&#20320;&#23558;&#22797;&#26434;&#30340;&#25968;&#25454;&#32467;&#26500;&#23384;&#20648;&#22312;&#25968;&#25454;&#24211;&#34920;&#20013;&#12290;&#26412;&#25991;&#23558;&#25552;&#20379;&#19968;&#20123;&#23454;&#29992;&#30340;&#26041;&#27861;&#26469;&#22788;&#29702;&#21644;&#26597;&#35810;JSON&#21015;&#12290;<\/p>\n<h3>1. &#21019;&#24314;&#27169;&#22411;&#24182;&#23450;&#20041;JSON&#21015;<\/h3>\n<p>&#39318;&#20808;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Eloquent&#27169;&#22411;&#65292;&#24182;&#23450;&#20041;&#19968;&#20010;JSON&#21015;&#12290;<\/p>\n<pre><code class=\"language-php\">use IlluminateDatabaseEloquentModel;\n\nclass Product extends Model\n{\n    protected $fillable = ['name', 'description'];\n\n    public function attributes()\n    {\n        return json_decode($this-&gt;attributes['attributes'], true);\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#23450;&#20041;&#20102;&#19968;&#20010;<code>Product<\/code>&#27169;&#22411;&#65292;&#24182;&#28155;&#21152;&#20102;&#19968;&#20010;<code>attributes<\/code>&#26041;&#27861;&#65292;&#29992;&#20110;&#20174;JSON&#23383;&#31526;&#20018;&#20013;&#35299;&#26512;&#20986;&#25968;&#32452;&#25968;&#25454;&#12290;<\/p>\n<h3>2. &#25554;&#20837;JSON&#25968;&#25454;<\/h3>\n<p>&#20320;&#21487;&#20197;&#30452;&#25509;&#25554;&#20837;JSON&#25968;&#25454;&#21040;&#25968;&#25454;&#24211;&#34920;&#20013;&#12290;<\/p>\n<pre><code class=\"language-php\">$product = new Product;\n$product-&gt;name = 'Laptop';\n$product-&gt;description = 'High-performance laptop';\n$product-&gt;attributes = '{\"cpu\": \"Intel i7\", \"ram\": \"16GB\"}';\n$product-&gt;save();<\/code><\/pre>\n<h3>3. &#26597;&#35810;JSON&#25968;&#25454;<\/h3>\n<p>&#20320;&#21487;&#20197;&#36890;&#36807;&#26597;&#35810;&#26465;&#20214;&#26469;&#26816;&#32034;JSON&#25968;&#25454;&#12290;<\/p>\n<pre><code class=\"language-php\">$products = Product::where('attributes.cpu', 'Intel i7')-&gt;get();\n\nforeach ($products as $product) {\n    echo $product-&gt;name . ': ' . implode(', ', array_keys($product-&gt;attributes));\n}<\/code><\/pre>\n<h3>4. &#22788;&#29702;&#23884;&#22871;JSON&#25968;&#25454;<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#22788;&#29702;&#23884;&#22871;&#30340;JSON&#25968;&#25454;&#65292;&#21487;&#20197;&#20351;&#29992;&#36882;&#24402;&#20989;&#25968;&#12290;<\/p>\n<pre><code class=\"language-php\">function parseAttributes($attributes)\n{\n    if (is_array($attributes)) {\n        foreach ($attributes as $key =&gt; $value) {\n            echo $key . ': ';\n            parseAttributes($value);\n        }\n    } else {\n        echo $attributes . PHP_EOL;\n    }\n}\n\nparseAttributes($product-&gt;attributes);<\/code><\/pre>\n<h3>5. &#26356;&#26032;JSON&#25968;&#25454;<\/h3>\n<p>&#20320;&#21487;&#20197;&#26356;&#26032;JSON&#25968;&#25454;&#12290;<\/p>\n<pre><code class=\"language-php\">$product = Product::find(1);\n$product-&gt;attributes = json_encode(['cpu' =&gt; 'AMD Ryzen 9', 'ram' =&gt; '32GB']);\n$product-&gt;save();<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312;Laravel&#24212;&#29992;&#20013;&#22788;&#29702;JSON&#21015;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ &#23450;&#20041;&#27169;&#22411;\nuse IlluminateDatabaseEloquentModel;\n\nclass Product extends Model\n{\n    protected $fillable = ['name', 'description'];\n\n    public function attributes()\n    {\n        return json_decode($this-&gt;attributes['attributes'], true);\n    }\n\n    \/\/ &#33719;&#21462;&#25152;&#26377;&#20135;&#21697;\n    public static function getAllProducts()\n    {\n        return Product::all();\n    }\n\n    \/\/ &#33719;&#21462;&#29305;&#23450;&#20135;&#21697;&#30340;&#35814;&#32454;&#20449;&#24687;\n    public static function getProductDetails($id)\n    {\n        return Product::find($id);\n    }\n\n    \/\/ &#28155;&#21152;&#26032;&#20135;&#21697;\n    public static function addNewProduct($data)\n    {\n        $product = new Product;\n        $product-&gt;name = $data['name'];\n        $product-&gt;description = $data['description'];\n        $product-&gt;attributes = json_encode($data['attributes']);\n        $product-&gt;save();\n    }\n\n    \/\/ &#26356;&#26032;&#20135;&#21697;&#20449;&#24687;\n    public static function updateProduct($id, $data)\n    {\n        $product = Product::find($id);\n        $product-&gt;name = $data['name'];\n        $product-&gt;description = $data['description'];\n        $product-&gt;attributes = json_encode($data['attributes']);\n        $product-&gt;save();\n    }\n\n    \/\/ &#21024;&#38500;&#20135;&#21697;\n    public static function deleteProduct($id)\n    {\n        Product::destroy($id);\n    }\n}<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#22312;Laravel&#24212;&#29992;&#20013;&#26377;&#25928;&#22320;&#22788;&#29702;&#21644;&#26597;&#35810;JSON&#21015;&#12290;&#24076;&#26395;&#36825;&#31687;&#25351;&#21335;&#23545;&#20320;&#26377;&#25152;&#24110;&#21161;&#65281;<\/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>JSON&#25968;&#25454;&#31867;&#22411;&#26159;&#19968;&#31181;&#28789;&#27963;&#30340;&#23384;&#20648;&#32467;&#26500;&#21270;&#25968;&#25454;&#30340;&#26041;&#27861;&#12290;&#22312;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#20351;&#29992;&#25968;&#25454;&#24211;&#26102;&#65292;Eloquent ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#22120;&#65289;&#25552;&#20379;&#20102;&#20248;&#38597;&#22320;&#19982;JSON&#21015;&#20132;&#20114;&#30340;&#26041;&#24335;&#12290;&#22312;&#36825;&#31687;&#20840;&#38754;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558;&#24102;&#20320;&#20102;&#35299;&#22914;&#20309;&#20351;&#29992;Eloquent&#22312;&#20320;&#30340;Laravel&#39033;&#30446;&#20013;&#22788;&#29702;JSON&#21015;&#12290;<\/p><p>&#24517;&#22791;&#26465;&#20214;<\/p><p>&#25903;&#25345;JSON&#21015;&#30340;&#25968;&#25454;&#24211;&#65288;&#22914;MySQL&#12289;PostgreSQL&#31561;&#65289;&#19978;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;<\/p><p>&#29702;&#35299;JSON&#25968;&#25454;&#26684;&#24335;<\/p><p>&#22522;&#30784;&#30340;Laravel&#21644;Eloquent&#30693;&#35782;&#12290;<\/p><h2>&#22522;&#26412;&#30340;JSON&#21015;&#25805;&#20316;<\/h2><p>&#20551;&#35774;&#24744;&#22312;&#25968;&#25454;&#24211;&#20013;&#26377;&#19968;&#20010;&#21517;&#20026; JSON &#30340;&#21015;&#65292;&#25105;&#20204;&#26469;&#25506;&#32034;&#19968;&#19979;&#22914;&#20309;&#20351;&#29992; Eloquent &#36827;&#34892;&#19968;&#20123;&#22522;&#26412;&#25805;&#20316;&#12290;&#39318;&#20808;&#65292;&#23450;&#20041;&#19968;&#20010;&#19982;&#35813;&#34920;&#23545;&#24212;&#30340; Eloquent &#27169;&#22411;&#12290;<\/p><pre><code>class User extends Model\n{\n    \/\/ ... other model properties and methods\n}\n<\/code><\/pre><p>&#35753;&#25105;&#20204;&#20551;&#35774;&ldquo;profile&rdquo;&#23383;&#27573;&#26159;&#22312;&ldquo;users&rdquo;&#34920;&#20013;&#30340;&#19968;&#20010;JSON&#21015;&#12290;&#20320;&#21487;&#20197;&#30452;&#25509;&#20351;&#29992;&ldquo;-&gt;&rdquo;&#31661;&#22836;&#35821;&#27861;&#35775;&#38382;JSON&#23383;&#27573;&#12290;<\/p><pre><code>$user = User::find(1);\necho $user-&gt;profile-&gt;age; \/\/ Accessing JSON object field\n<\/code><\/pre><p>&#24403;&#20320;&#20445;&#23384;&#25968;&#25454;&#26102;&#65292;&#21487;&#20197;&#20351;&#29992;&#30456;&#21516;&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>$user = User::find(1);\n$user-&gt;profile-&gt;age = 30;\n$user-&gt;save();\n<\/code><\/pre><h2>&#26597;&#35810;JSON&#21015;<\/h2><p>&#26597;&#35810;JSON&#21015;&#28041;&#21450;&#20351;&#29992;&#29702;&#35299;JSON&#32467;&#26500;&#30340;&#26041;&#27861;&#12290;&#36825;&#37324;&#26159;&#22914;&#20309;&#22312;JSON&#21015;&#20013;&#26681;&#25454;&#23383;&#27573;&#36873;&#25321;&#29992;&#25143;&#30340;&#31034;&#20363;&#12290;<\/p><pre><code>$users = User::where('profile-&gt;language', 'en')-&gt;get();\n<\/code><\/pre><p>&#20320;&#21487;&#20197;&#20351;&#29992;&#29305;&#23450;&#23646;&#24615;&#25628;&#32034;JSON&#25968;&#32452;&#20013;&#30340;&#39033;&#30446;&#65306;<\/p><pre><code>$users = User::whereJsonContains('profile-&gt;tags', ['author'])-&gt;get();\n<\/code><\/pre><h2>&#25552;&#21069;&#26597;&#35810;&#25216;&#26415;<\/h2><p>&#22914;&#26524;&#38656;&#35201;&#25191;&#34892;&#26356;&#22797;&#26434;&#30340;&#26597;&#35810;&#65292;&#20363;&#22914;&#22522;&#20110;JSON&#23383;&#27573;&#25490;&#24207;&#65292;Eloquent&#20063;&#25903;&#25345;&#36825;&#20123;&#25805;&#20316;&#12290;<\/p><pre><code>$users = User::orderBy('profile-&gt;reputation')-&gt;get();\n<\/code><\/pre><p>&#20026;&#20102;&#20165;&#33719;&#21462;JSON&#20013;&#30340;&#37096;&#20998;&#25968;&#25454;&#65292;Laravel&#25552;&#20379;&#20102;&#19968;&#20010;&#21517;&#20026;selectRaw&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>$users = User::selectRaw('profile-&gt;&gt;$.settings as user_settings')-&gt;get();\n<\/code><\/pre><p>&#35201;&#26356;&#26032;JSON&#21015;&#20013;&#30340;&#37096;&#20998;&#32780;&#19981;&#24433;&#21709;&#20854;&#20182;&#23646;&#24615;&#65292;&#35831;&#20351;&#29992;&ldquo;update&rdquo;&#19982;JSON&#36335;&#24452;&#65306;<\/p><pre><code>User::where('id', 1)-&gt;update(['profile-&gt;age' =&gt; 31]);\n<\/code><\/pre><h2>&#19982;JSON&#38598;&#21512;&#24037;&#20316;<\/h2><p>Laravel &#20250;&#23558;JSON&#21015;&#36716;&#25442;&#20026;IlluminateSupportCollection&#65292;&#20801;&#35768;&#24744;&#20351;&#29992;&#25152;&#26377;Collection&#26041;&#27861;&#22788;&#29702;JSON&#25968;&#25454;&#12290;<\/p><pre><code>$user = User::find(1);\n$interests = collect($user-&gt;profile-&gt;interests);\n$sortedInterests = $interests-&gt;sort();\n<\/code><\/pre><h2>&#39564;&#35777;JSON&#36755;&#20837;<\/h2><p>&#20026;&#20102;&#30830;&#20445;&#24744;&#30340;&#24212;&#29992;&#20445;&#25345;&#26377;&#25928;&#30340;JSON&#32467;&#26500;&#65292;&#21487;&#20197;&#20351;&#29992;Laravel&#20869;&#32622;&#30340;JSON&#39564;&#35777;&#35268;&#21017;&#12290;<\/p><pre><code>use IlluminateSupportFacadesValidator;\n\n$data = [\n    'profile' =&gt; '{\"age\":30, \"language\":\"en\"}'\n];\n\n$validator = Validator::make($data, [\n    'profile' =&gt; 'required|json'\n]);\n\nif ($validator-&gt;fails()) {\n    return $validator-&gt;errors();\n}\n\/\/ Proceed with data manipulation knowing the JSON is valid.\n<\/code><\/pre><h2>&#20351;&#29992;JSON&#26500;&#24314;&#25925;&#20107;&#25968;&#25454;&#26102;&#65292;&#21487;&#20197;&#23450;&#20041;&#20851;&#31995;&#12290;<\/h2><p>JSON &#21015;&#20063;&#21487;&#33021;&#20195;&#34920;&#20851;&#31995;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#33021;&#26377;&#36825;&#26679;&#19968;&#20010;&#22330;&#26223;&#65306;JSON &#21015;&#23384;&#20648;&#30340;&#38190;&#36830;&#25509;&#21040;&#21478;&#19968;&#20010;&#27169;&#22411;&#12290;<\/p><pre><code>class User extends Model\n{\n    public function getOrdersAttribute()\n    {\n        return Order::whereIn('id', $this-&gt;profile-&gt;orders)-&gt;get();\n    }\n}\n<\/code><\/pre><p>&#26412;&#36136;&#19978;&#65292;Eloquent &#19981;&#30452;&#25509;&#23558;&#23383;&#27573;&#19982;&#20851;&#31995;&#25968;&#25454;&#20851;&#32852;&#36215;&#26469;&#65292;&#20294;&#36890;&#36807;&#35775;&#38382;&#22120;&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#26377;&#25928;&#22320;&#24314;&#31435;&#20851;&#31995;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>JSON&#19982;Eloquent&#30340;&#32467;&#21512;&#26159;&#19968;&#31181;&#32467;&#26500;&#19982;&#28789;&#27963;&#24615;&#30340;&#30896;&#25758;&#65292;&#20026;&#24320;&#21457;&#32773;&#25552;&#20379;&#20102;&#24040;&#22823;&#30340;&#21487;&#33021;&#24615;&#12290;&#21033;&#29992;Eloquent&#20013;&#30340;JSON&#21015;&#65292;&#22312;Laravel&#24212;&#29992;&#20013;&#28155;&#21152;&#20102;&#19968;&#23618;&#24378;&#22823;&#30340;&#25968;&#25454;&#25805;&#20316;&#21644;&#26597;&#35810;&#21151;&#33021;&#12290;&#26412;&#25351;&#21335;&#20171;&#32461;&#20102;&#20960;&#20010;&#20851;&#38190;&#25216;&#24039;&#65292;&#20174;&#22522;&#26412;&#25805;&#20316;&#21040;&#39640;&#32423;&#26597;&#35810;&#65292;&#35753;&#24744;&#21487;&#20197;&#26368;&#22823;&#38480;&#24230;&#22320;&#21457;&#25381;&#36825;&#19968;&#21151;&#33021;&#30340;&#20248;&#21183;&#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;&#22788;&#29702;JSON&#21015;&#36890;&#24120;&#28041;&#21450;&#21040;&#23558;JSON&#23383;&#31526;&#20018;&#36716;&#25442;&#20026;&#27169;&#22411;&#23646;&#24615;&#30340;&#25968;&#32452;&#65292;&#24182;&#23558;&#20854;&#35774;&#32622;&#20026;&#30456;&#24212;&#30340;&#27169;&#22411;&#23646;&#24615;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992;Eloquent&#22788;&#29702;JSON&#21015;&#30340;&#19968;&#20123;&#24314;&#35758;&#21644;&#31034;&#20363;&#65306;<\/p>\n<h3>1. JSON&#21040;Array<\/h3>\n<p>&#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#23558;JSON&#23383;&#31526;&#20018;&#36716;&#25442;&#20026;JavaScript&#23545;&#35937;&#65288;Object&#65289;&#65292;&#28982;&#21518;&#23558;&#20854;&#36716;&#25442;&#20026;&#25968;&#32452;&#12290;<\/p>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesJson;\n\n$jsonString = '{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}';\n$array = Json::decode($jsonString);<\/code><\/pre>\n<h3>2. &#20351;&#29992;<code>parse()<\/code>&#26041;&#27861;<\/h3>\n<p>&#22914;&#26524;&#20320;&#30340;JSON&#23383;&#31526;&#20018;&#21253;&#21547;&#23884;&#22871;&#32467;&#26500;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>parse()<\/code>&#26041;&#27861;&#26469;&#35299;&#26512;&#23427;&#12290;<\/p>\n<pre><code class=\"language-php\">$jsonString = '{\"person\":{\"name\":\"John\",\"address\":{\"street\":\"123 Main St\",\"city\":\"New York\"}}}';\n$array = Json::parse($jsonString);\n\n\/\/ &#29616;&#22312;&#25105;&#20204;&#26377;&#22914;&#19979;&#32467;&#26500;&#65306;\n\/\/ $array['person']['address']<\/code><\/pre>\n<h3>3. &#23558;&#25968;&#32452;&#36716;&#25442;&#22238;JSON<\/h3>\n<p>&#24403;&#38656;&#35201;&#36820;&#22238;JSON&#26684;&#24335;&#26102;&#65292;&#21487;&#20197;&#20351;&#29992;<code>toJson()<\/code>&#26041;&#27861;&#12290;<\/p>\n<pre><code class=\"language-php\">$jsonString = json_encode($array);<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#20320;&#26377;&#19968;&#20010;&#21517;&#20026; <code>User<\/code> &#30340;&#27169;&#22411;&#65292;&#20854;&#20013;&#21253;&#21547;&#19968;&#20010;&#21517;&#20026; <code>addresses<\/code> &#30340;&#20851;&#32852;&#23383;&#27573;&#65292;&#35813;&#23383;&#27573;&#26159;&#19968;&#20010; <code>Address<\/code> &#23454;&#20307;&#21015;&#34920;&#12290;<\/p>\n<pre><code class=\"language-php\">class User extends Model {\n    public function addresses() {\n        return $this-&gt;hasMany(Address::class);\n    }\n}\n\nclass Address {\n    \/\/ ...\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#22914;&#26524;&#20320;&#24819;&#20174; <code>$user<\/code> &#33719;&#24471;&#25152;&#26377;&#22320;&#22336;&#24182;&#23558;&#20854;&#36716;&#25442;&#20026; JSON&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#20570;&#65306;<\/p>\n<pre><code class=\"language-php\">$user = User::find(1); \/\/ &#20551;&#35774; $user &#26159;&#19968;&#20010;&#26377;&#25928;&#30340; User &#23454;&#20363;\n$addresses = $user-&gt;addresses;\n$jsonAddresses = json_encode($addresses);\n\n\/\/ &#36755;&#20986;&#32467;&#26524;&#26159; JSON &#26684;&#24335;&#30340;&#22320;&#22336;&#21015;&#34920;\necho $jsonAddresses;<\/code><\/pre>\n<p>&#36825;&#21482;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#65292;&#23454;&#38469;&#25805;&#20316;&#21487;&#33021;&#20250;&#26681;&#25454;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#26377;&#25152;&#19981;&#21516;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#33021;&#38656;&#35201;&#22788;&#29702;&#22797;&#26434;&#30340;JSON&#32467;&#26500;&#25110;&#32773;&#28155;&#21152;&#38169;&#35823;&#22788;&#29702;&#26426;&#21046;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#26631;&#39064;&#65306;&#22312;Eloquent&#20013;&#22788;&#29702;JSON&#21015;&#65306;&#23454;&#29992;&#25351;&#21335; &#22312;&#038;#29616..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-967","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\/967","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=967"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=967"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=967"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}