2015-05-23 4 views
0

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

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

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

//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 ,,

но. .

Когда я устанавливаю массив как твердое значение массив (123,234,345,456,), он работает и удаляет указанный идентификатор.

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

У меня есть взрывать, взрывать $ model2-> getFollowProfiles() или что-то .. ??

+0

Пример codepad с данными массива как переменной..Семмы данных массива как переменной не работают либо .http: //codepad.org/j24xuTSX – BENN1TH

+0

возвращает то же значение выходного выпуска, то есть 123,234,345,456, – BENN1TH

ответ

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 указанного идентификатора удаляется из значения атрибута, но сохраняет любые другие значения идентификатора.

+1

Вы должны отметить свой ответ как принято, если она решит вашу проблему. – fantasticrice

 Смежные вопросы

  • Нет связанных вопросов^_^