У меня есть пользовательская коллекция 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 () или что-то..??
Хорошо, разобрался, да. Код ниже.
изменено
$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 указанный идентификатор удаляется из значения атрибута, но сохраняет любые другие значения идентификатора.
Других решений пока нет …