laravel set属性不会附加到json键

时间:2016-09-14 11:43:23

标签: php json laravel eloquent octobercms

我有一个循环设置一些json值。

 if (isset($product->customfields)) {
            foreach ($product->customfields as $customfield) {
                $fieldId = $customfield['custom_field_id'];
                // Grab custom field template code
                $field = CustomField::find($fieldId);

                $product->attributes['display_name'] = $field->display_name;

            }
}

我试图添加的显示名称在这里

$product->attributes['display_name'] = $field->display_name;

在我的转储中,我可以看到json就是这个

 "id":"20",
 "display_name":"Size",
   "customfields":[  
      {  
         "id":"1",
         "product_id":"20",
         "store_id":null,
         "custom_field_id":"1",
         "value":"RED",
         "created_at":"2016-09-14 09:32:00",
         "updated_at":"2016-09-14 09:32:14"
      },

但是当我尝试改变这个

 $product->attributes['customfields']['display_name'] = $field->display_name;


 $product->attributes['customfields'] = $field->display_name;

我刚拿到这个

"id":"20",
"customfields":[  
      {  
         "id":"1",
         "product_id":"20",
         "store_id":null,
         "custom_field_id":"1",
         "value":"RED",
         "created_at":"2016-09-14 09:32:00",
         "updated_at":"2016-09-14 09:32:14"
      },

如何设置要添加到customfields键的属性?

编辑:

完整档案http://kopy.io/LQTDi

感谢@Manish的建议

$ product-> customfields - ['display_name'] = $ field-> display_name;

现在返回

"customfields":{  
      "0":{  
         "id":"1",
         "product_id":"10000",
         "store_id":null,
         "custom_field_id":"1",
         "value":"RED",
         "created_at":"2016-09-14 09:32:00",
         "updated_at":"2016-09-14 09:32:14"
      },
      "1":{  
         "id":"2",
         "product_id":"10000",
         "store_id":null,
         "custom_field_id":"2",
         "value":"",
         "created_at":"2016-09-14 10:22:14",
         "updated_at":"2016-09-14 10:22:14"
      },
      "display_name":"Size"
   },

但是在自定义显示名称中有两个字段,其中包含“大小”和“颜色”。我想我可能需要创建一个新循环并循环显示display_name。如果是这种情况,请告知我,我会这样做。

1 个答案:

答案 0 :(得分:2)

@ServerSideSkittles可能我明白了你的意思。可能是我错了,但根据你的细节,我认为你需要这个。

<template extended></template>

试试这个。可能会解决这个问题。