Удалить значение из массива в поле magento

У меня есть пользовательская коллекция magento, и у каждого элемента в коллекции есть собственная целевая страница (collection / view / index / id / 12 и т. Д.) В интерфейсе & удалось в админ-бэкенде.

У меня есть действие контроллера, которое позволяет пользователямследовать«каждый элемент с идентификатором пользователя, сохраненным / добавленным к значению поля элементов.

Пример значения поля / атрибута ниже

//Follow Action Working..
//Users ID added to field when followAction accessed via a follow link.

$model2 = Mage::getModel("userprofiles/userprofiles")->load($id);
$FollowProfiles = $model2->getFollowProfiles();
$model->setFollowProfiles(''.$FollowProfiles.''.$myprofileid.',');
$model->save();
Mage::getSingleton('core/session')->addSuccess('Sucessfully followed.');
$this->_redirectReferer();

//saves as
123,321,220,125,

Следующее действие работает как задумано. Однако попытка получить последующее действие не желает работать. Код ниже.

//Get field/attribute values ie 123,234,345,456,
$FollowProfilesArray = array($model2->getFollowProfiles());

//$profileid will be current users id
//used to remove user id from array
$remove_from_array = array_diff($FollowProfilesArray,array($profile_id,));

foreach($remove_from_array as $key => $value){
$select .= ''.$value.',';
}
//saves all ids except the removed users id
$model->setFollowProfiles($select);

В основном по какой-то причине при использовании массив ($ model2-> getFollowProfiles ()) не позволяет удалить идентификатор пользователя из значения поля, сохраняет его как 123,234,345,456 ,,

но..

когда я устанавливаю массив как жестко закодированное значение Массив (123234345456,) это работает и удаляет указанный идентификатор.

Любая причина, почему массив ($ model2-> getFollowProfiles ()) не работает, так как он равен 123,234,345,456,

Должен ли я взорваться, взорвать $ Model2-> getFollowProfiles () или что-то..??

0

Решение

Хорошо, разобрался, да. Код ниже.


изменено

$FollowProfilesArray = array($model2->getFollowProfiles());

в

//explode out the attribute value
$FollowProfilesArray = explode(",","".$model2->getFollowProfiles()."");

и изменил

foreach($remove_from_array as $key => $value){
$select .= ''.$value.',';}

в

    //so if $value is NULL save no value id, stoppped the adding of , to the attribute value

foreach($remove_from_array as $key => $value){
if($value == NULL) {
//$select .= ''.$value.',';
}else{
$select .= ''.$value.',';
}
}

так что теперь при вызове unfollowAction указанный идентификатор удаляется из значения атрибута, но сохраняет любые другие значения идентификатора.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector