Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用yiimongodsuite删除数组元素_Php_Mongodb_Yii_Yii Extensions - Fatal编程技术网

Php 使用yiimongodsuite删除数组元素

Php 使用yiimongodsuite删除数组元素,php,mongodb,yii,yii-extensions,Php,Mongodb,Yii,Yii Extensions,我有一些代码应该是从嵌入式MongoDB文档中删除记录 代码如下: public function actionDeleteSaved() { $savedLink = $_POST['savedLink']; $userId = Yii::app()->user->getId(); $current = SaveLink::model()->findByPk($userId); if(in_ar

我有一些代码应该是从嵌入式MongoDB文档中删除记录

代码如下:

    public function actionDeleteSaved()
    {
        $savedLink = $_POST['savedLink'];
        $userId = Yii::app()->user->getId();
        $current = SaveLink::model()->findByPk($userId);

        if(in_array($savedLink, $current->links))
        {
            array_slice($current->links, $savedLink);
            $current->save();
        }
    }
这就是将数据传递给控制器操作方法的原因:

echo CHtml::ajaxButton(
        'delete', 
        Yii::app()->createUrl("dashboard/index/deletesaved"),
        array( // ajax options
            'type' => 'POST',
            'context' => "js:this",
            'data' => array(
                'savedLink' => $savedLink
            )
        ),
        array( //html options
            'class'=>'deleteSaved'
        )
    );
这就是renderPartial的外观:

        $this->renderPartial('_deleteSaved', array('savedLink'=>$s));
我希望发布的内容是正确发布的,但我不确定它是否与控制器通信并传递数据,或者我从数据库中删除数据的代码是否正确


非常感谢您的帮助。

问题在于
数组\u切片
部分。因为数组切片不修改数组参数

改为使用(它修改传递的数组参数)并获取密钥:

if(in_array($savedLink, $current->links))
{
        $key = array_search($savedLink, $current->links);
        array_splice($current->links, $key, 0);
        $current->save();
}

注意:如果
$current->links
是嵌入式文档(对象)数组,您可能需要找到
$key
并以其他方式检查是否在数组中。

嘿,伙计,谢谢你的回复。我明天会试试这个,谢谢。嘿,数组拼接不起作用,但它起作用了:$savedLink=$\u POST['savedLink']$userId=Yii::app()->user->getId()$current=SaveLink::model()->findByPk($userId);如果(key_存在($savedLink,$current->links)){unset($current->links[$savedLink]);$current->save()}