Reputation: 1304
I have to delete some objects inside my action before sending data to the view
The data are something like this:
'items' => [
(int) 0 => object(App\Model\Entity\Propriete) {
'id_propriete' => (int) 1,
// and other fields
'user' => object(App\Model\Entity\User) {
'id' => '1459436853',
//and other fields
},
'favorites' => [
(int) 0 => object(App\Model\Entity\Favorite) {
'id' => (int) 24,
'propriete_id' => (int) 1,
'user_id' => '1459438630',
'created' => object(Cake\I18n\FrozenDate) {
'time' => '2016-04-15T00:00:00+00:00',
'timezone' => 'UTC',
'fixedNowTime' => false
},
'modified' => object(Cake\I18n\FrozenDate) {
'time' => '2016-04-15T00:00:00+00:00',
'timezone' => 'UTC',
'fixedNowTime' => false
},
},
(int) 1 => object(App\Model\Entity\Favorite) {
'id' => (int) 27,
'propriete_id' => (int) 1,
'user_id' => '1459436853',
,
'modified' => object(Cake\I18n\FrozenDate) {
'time' => '2016-04-18T00:00:00+00:00',
'timezone' => 'UTC',
'fixedNowTime' => false
},
'[new]' => false,
'[accessible]' => [
'*' => true
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Favorites'
},
(int) 2 => object(App\Model\Entity\Favorite) {
'id' => (int) 28,
'propriete_id' => (int) 1,
'user_id' => 'ae0dce23-584b-4907-b32e-1655d5e69e55',
}
],
}
]
favorites is an array i want to remove some specific object inside this array according to a condition.. So that what i tried to do :
foreach($proprietes as $ad){
foreach($ad->favorites as $favori)
if($favori->user_id !==$user['id']){
unset($favori);
}
}
Butit doesn't work can some one help ?
Upvotes: 0
Views: 52
Reputation: 23379
foreach($proprietes as $ad){
foreach($ad->favorites as $key=>$favori)
if($favori->user_id !==$user['id']){
unset($ad->favorites[$key]);
}
}
You have to reference the object directly.
Upvotes: 1