gpt4 book ai didi

php - 使用 YiiMongoDbSuite 删除数组元素

转载 作者:可可西里 更新时间:2023-11-01 09:52:35 27 4
gpt4 key购买 nike

我有一些代码应该从嵌入式 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();
}
}

这是将数据传递给 Controller ​​操作方法的原因:

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

我想要发布的内容已正确发布,但我不确定它是否正在与 Controller 通信并传递数据,或者我用于从数据库中删除数据的代码是否正确。

非常感谢任何帮助,谢谢。

最佳答案

问题出在 array_slice 部分。作为specified in php docs数组切片不会修改数组参数。

使用array_splice相反(它修改传递的数组参数)和array_search获取 key :

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

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

关于php - 使用 YiiMongoDbSuite 删除数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19309707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com