I am passing the $data
as a parameter to a setter function in my model. var_dump($data)
gives
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"
}
I then do a foreach
inside the setter function
foreach($data as $val) {
$this->goalLink = [
'iconUrl' => $val['iconUrl'],
'title' => $val['title']
];
}
The constructor is defined like this
protected $goalLink = [];
public function __construct() {
$this->goalLink = [
[
'iconUrl' => null,
'title' => null
]
];
}
Then there is finally a createNew()
which sends data to my API
$client = API::client();
$url = API::url('exampleURL');
$data = [
'goalLink' => [
'iconUrl' => $this->goalLink['iconUrl'],
'title' => $this->goalLink['title']
]
];
$response = $client->post($url, ['json' => $data]);
Now the problem is the data in not getting saved properly only data from the 2nd array is getting saved. Somewhere the the data is getting overwritten.
This is the response i am getting from the API
goalLink":[{"iconUrl":"C:\\fakepath\\photo-71823413.jpg","title":"Example2"}]
but it should have actually saved like this
goaloalLink":[{"iconUrl":"C:\fakepath\photo-125301449.jpg","title":"Example1"}, {"iconUrl":"C:\\fakepath\\photo-71823413.jpg","title":"Example2"}]