从 magento 字段中的数组中删除值

Remove value from array in magento field

我有一个 magento 自定义集合,集合中的每个项目在前端都有自己的登录页面(collection/view/index/id/12 等)并在管理后端进行管理。

我有一个控制器操作,允许用户“关注”每个项目,用户 ID saved/added 到项目字段值。

下面Field/attribute的值的例子

//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);

基本上由于某些原因,当使用 array($model2->getFollowProfiles()) 时不允许从字段值中删除用户 ID,将其保存为 123,234,345,456,

但是..

当我将数组设置为硬编码值时 array(123,234,345,456,) 它起作用并删除了指定的 ID。

为什么 array($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 时,指定的 ID 将从属性值中删除,但保留任何其他 ID 值。