{"id":38,"date":"2026-09-28T20:01:01","date_gmt":"2026-09-28T17:01:01","guid":{"rendered":"https:\/\/localhost\/tatwerat-wp\/laravel-json-attributes-eloquent-casts\/"},"modified":"2026-09-28T20:01:01","modified_gmt":"2026-09-28T17:01:01","slug":"laravel-json-attributes-eloquent-casts","status":"publish","type":"post","link":"https:\/\/www.tatwerat.com\/ar\/laravel-json-attributes-eloquent-casts\/","title":{"rendered":"\u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u062d\u0642\u0648\u0644 JSON \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Eloquent Casts \u0641\u064a Laravel"},"content":{"rendered":"<p>\u062a\u0641\u064a\u062f \u0623\u0639\u0645\u062f\u0629 JSON \u0639\u0646\u062f\u0645\u0627 \u064a\u062d\u062a\u0648\u064a \u0627\u0644\u0633\u062c\u0644 \u0639\u0644\u0649 \u0628\u064a\u0627\u0646\u0627\u062a \u0645\u0631\u0646\u0629\u060c \u0645\u062b\u0644 \u0645\u0648\u0627\u0635\u0641\u0627\u062a \u0627\u0644\u0645\u0646\u062a\u062c \u0623\u0648 \u0642\u0627\u0626\u0645\u0629 \u0646\u0633\u062e\u0647 \u0627\u0644\u0645\u062e\u062a\u0644\u0641\u0629. \u064a\u0633\u062a\u0637\u064a\u0639 Laravel \u062a\u062d\u0648\u064a\u0644 \u0642\u064a\u0645\u0629 \u0627\u0644\u0639\u0645\u0648\u062f \u062a\u0644\u0642\u0627\u0626\u064a\u064b\u0627 \u0639\u0646\u062f \u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u0648\u062f\u064a\u0644\u060c \u0641\u0644\u0627 \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 <code>json_decode<\/code> \u0641\u064a \u0643\u0644 \u0645\u0631\u0629.<\/p>\n<h2>\u0627\u062e\u062a\u064a\u0627\u0631 \u0646\u0648\u0639 \u0627\u0644\u062a\u062d\u0648\u064a\u0644 \u0627\u0644\u0645\u0646\u0627\u0633\u0628<\/h2>\n<p>\u064a\u0646\u0627\u0633\u0628 \u062a\u062d\u0648\u064a\u0644 <code>array<\/code> \u0642\u0631\u0627\u0621\u0629 \u0642\u064a\u0645\u0629 JSON \u0643\u0627\u0645\u0644\u0629 \u0623\u0648 \u0627\u0633\u062a\u0628\u062f\u0627\u0644\u0647\u0627. \u0625\u0630\u0627 \u0623\u0631\u062f\u062a \u062a\u0639\u062f\u064a\u0644 \u0639\u0646\u0635\u0631 \u062f\u0627\u062e\u0644\u0647\u0627 \u062b\u0645 \u062d\u0641\u0638 \u0627\u0644\u0645\u0648\u062f\u064a\u0644\u060c \u0641\u0627\u0633\u062a\u062e\u062f\u0645 <code>AsArrayObject<\/code> \u0644\u062a\u0641\u0627\u062f\u064a \u0645\u0634\u0643\u0644\u0629 \u062a\u0639\u062f\u064a\u0644 \u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0645\u0635\u0641\u0648\u0641\u0629 \u0645\u0628\u0627\u0634\u0631\u0629. \u0623\u0645\u0627 <code>AsCollection<\/code> \u0641\u064a\u0648\u0641\u0631 \u0623\u062f\u0648\u0627\u062a Laravel Collections \u0645\u062b\u0644 <code>push<\/code> \u0648<code>where<\/code>.<\/p>\n<pre><code>use Illuminate\\Database\\Eloquent\\Casts\\AsArrayObject;\nuse Illuminate\\Database\\Eloquent\\Casts\\AsCollection;\n\nclass Product extends Model\n{\n    protected $casts = [\n        'specs' =&gt; AsArrayObject::class,\n        'variants' =&gt; AsCollection::class,\n    ];\n}<\/code><\/pre>\n<p>\u0623\u0646\u0634\u0626 \u0627\u0644\u0639\u0645\u0648\u062f\u064a\u0646 <code>specs<\/code> \u0648<code>variants<\/code> \u0628\u0646\u0648\u0639 JSON \u0641\u064a Migration. \u0627\u0644\u0640cast \u064a\u063a\u064a\u0631 \u0637\u0631\u064a\u0642\u0629 \u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u0627\u0644\u0642\u064a\u0645\u0629 \u0641\u064a Eloquent\u060c \u0628\u064a\u0646\u0645\u0627 \u062a\u0638\u0644 \u0645\u062d\u0641\u0648\u0638\u0629 \u0641\u064a \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0628\u0635\u064a\u063a\u0629 JSON.<\/p>\n<h2>\u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a<\/h2>\n<pre><code>$product = Product::findOrFail($id);\n$product-&gt;specs['ram'] = '32 GB';\n$product-&gt;variants-&gt;push(['color' =&gt; 'Blue', 'price' =&gt; 1099]);\n$product-&gt;save();<\/code><\/pre>\n<p>\u0625\u0630\u0627 \u0643\u0627\u0646 \u0627\u0644\u062d\u0642\u0644 \u0642\u062f \u064a\u0643\u0648\u0646 \u0641\u0627\u0631\u063a\u064b\u0627\u060c \u0647\u064a\u0626\u0647 \u0642\u0628\u0644 \u0627\u0633\u062a\u062f\u0639\u0627\u0621 \u062f\u0648\u0627\u0644 Collection\u060c \u0648\u062a\u062d\u0642\u0642 \u0645\u0646 \u0628\u0646\u064a\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0642\u0627\u062f\u0645\u0629 \u0645\u0646 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645. \u0623\u0645\u0627 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062a\u064a \u062a\u0639\u062a\u0645\u062f \u0639\u0644\u064a\u0647\u0627 \u0628\u0627\u0633\u062a\u0645\u0631\u0627\u0631 \u0641\u064a \u0627\u0644\u0628\u062d\u062b \u0648\u0627\u0644\u0631\u0628\u0637 \u0628\u064a\u0646 \u0627\u0644\u062c\u062f\u0627\u0648\u0644\u060c \u0641\u0642\u062f \u062a\u0643\u0648\u0646 \u0627\u0644\u0623\u0639\u0645\u062f\u0629 \u0623\u0648 \u0627\u0644\u062c\u062f\u0627\u0648\u0644 \u0627\u0644\u0639\u0627\u062f\u064a\u0629 \u0623\u0646\u0633\u0628 \u0644\u0647\u0627. \u0631\u0627\u062c\u0639 <a href=\"https:\/\/laravel.com\/docs\/11.x\/eloquent-mutators#array-and-json-casting\" target=\"_blank\" rel=\"noopener noreferrer\">\u062a\u0648\u062b\u064a\u0642 Laravel \u0644\u0644\u0640casts<\/a> \u0644\u0644\u062a\u0641\u0627\u0635\u064a\u0644.<\/p>\n<p><strong>\u0627\u0644\u0645\u0635\u062f\u0631:<\/strong> <a href=\"https:\/\/medium.com\/@abdo.host\/php-laravel-working-with-json-attributes-using-eloquent-array-casts-6fe36476de5d\" target=\"_blank\" rel=\"noopener noreferrer\">\u0645\u0642\u0627\u0644 Abdo Host \u0627\u0644\u0623\u0635\u0644\u064a \u0639\u0644\u0649 Medium<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u0633\u062a\u062e\u062f\u0645 AsArrayObject \u0644\u062a\u0639\u062f\u064a\u0644 \u0628\u064a\u0627\u0646\u0627\u062a JSON\u060c \u0648AsCollection \u0639\u0646\u062f\u0645\u0627 \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0623\u062f\u0648\u0627\u062a Collections \u062f\u0627\u062e\u0644 \u0627\u0644\u0645\u0648\u062f\u064a\u0644.<\/p>\n","protected":false},"author":0,"featured_media":39,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-38","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/posts\/38","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":0,"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/media\/39"}],"wp:attachment":[{"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tatwerat.com\/ar\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}