我想知道是否可以在 phalcon ODM 中进行批量删除(使用单个操作),而不是通过“delete()”方法获取文档并在循环中一个一个地删除它们?
我需要这样的东西:
$db->users->remove(array("type" => "abc"));
官方文档对此只字未提,转储类方法也没有透露任何新信息。
附言。我正在使用 phalcon 2.0.10
最佳答案
有些人要求分享我正在使用的方法
我在 ModelBase 中创建了一个方法。所有其他模型都扩展了它,因此它们可以访问它的方法。我使用静态函数是为了不创建类的实例。
class ModelBase extends \Phalcon\Mvc\Collection
{
public static function deleteBulk(array $conditions)
{
$class = get_called_class();
$model = new $class;
$collection = $model->getSource();
# I have a registered service mongo in DI, so i just get it from there
$mongo = \Phalcon\Di::getDefault()->getMongo();
return $mongo->$collection->remove($conditions);
}
}
然后我有一个模型:
class Items extends ModelBase
{
}
所以当我需要批量删除时,我只需调用:
Items::deleteBulk(array("type" => "abc"));
关于php - Phalcon ODM 批量删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37805438/