Php 使用yiimongodsuite删除数组元素
我有一些代码应该是从嵌入式MongoDB文档中删除记录 代码如下: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
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()}