【发布时间】:2018-03-05 18:23:02
【问题描述】:
我有一个ActiveDataProvider,其中包括几个模型。现在我需要删除其中一个模型。假设我的ActiveDataProvider 称为$allproducts 有6 个模型。现在我需要从$allproducts 中删除模型 4。我怎样才能做到这一点?
我试图在 ActiveDataProvider 中循环,并在某些情况下删除模型。在我的示例中,Model 4(项目编号 4)被标记为删除。
foreach ($allproducts as $key => $product){
if ($value == 'delete') { // model 4, $value = 'delete'
unset($allproducts[$key]);
}
}
但我认为这不是正确的方法。 yii2 中是否有特定方法可以从ActiveDataProvider 对象中删除模型?
什么是正确的程序?
【问题讨论】:
-
如果您需要删除它,为什么要在查询中获取该模型
-
对不起,我不明白?你是什么意思?
-
您正在尝试删除活动数据提供者返回的记录,我是说如果您必须在之后删除它,为什么不通过活动数据提供者获取该记录,为什么不在返回数据提供者之前将其过滤掉
-
它是一个“虚拟”数据提供者,基于数据网格视图的记录。在 datagridview 中有一个可编辑的列。如果在列中进行了更改,将调用控制器操作。在这个控制器函数中,我必须向 ActiveDataProvider 添加一个“虚拟”行(模型/项目),或者在删除的情况下从 ActiveDataProvider 中删除“虚拟”模型。之后,Datagrid 将被更新。添加一个“虚拟”行很好,但是删除,从数据网格中删除一行,让我有些头疼!