无法使用php中的foreach正确保存数据

时间:2015-11-19 09:56:32

标签: php laravel multidimensional-array dynamic-arrays

我将$data作为参数传递给模型中的setter函数。 var_dump($data)给出了

array(2) {
  ["iconUrl"]=>
  string(31) "C:\fakepath\photo-125301449.jpg"
  ["title"]=>
  string(8) "Example1"
}
array(2) {
  ["iconUrl"]=>
  string(30) "C:\fakepath\photo-71823413.jpg"
  ["title"]=>
  string(12) "Example2"
}

然后我在setter函数

中执行foreach
foreach($data as $val) {
    $this->goalLink = [
        'iconUrl' => $val['iconUrl'],
        'title' => $val['title']
    ];
}

构造函数定义如下

protected $goalLink = [];
public function __construct() {
    $this->goalLink = [
        [
            'iconUrl' => null,
            'title' => null
        ]
    ];   
}

然后最后有一个createNew()将数据发送到我的API

$client = API::client();
$url = API::url('exampleURL');
$data = [
    'goalLink' => [
        'iconUrl' => $this->goalLink['iconUrl'],
        'title' => $this->goalLink['title']
    ]
];
$response = $client->post($url, ['json' => $data]);

现在问题是没有正确保存的数据只保存了第二个数组中的数据。某处数据被覆盖。

这是我从API获得的回复

goalLink":[{"iconUrl":"C:\\fakepath\\photo-71823413.jpg","title":"Example2"}]

但它实际上应该像这样保存

goaloalLink":[{"iconUrl":"C:\fakepath\photo-125301449.jpg","title":"Example1"}, {"iconUrl":"C:\\fakepath\\photo-71823413.jpg","title":"Example2"}]

0 个答案:

没有答案