我在我的项目中使用默认范围,它工作正常。
public static function find()
{
return parent::find()->where(['is_deleted' => 0]);
}
但是现在,我想在报告部分显示所有已删除的记录。
如何仅跳过特定查询的默认范围?
答案 0 :(得分:0)
使用它来清除或重新定义您的状况:
$model = Model::find()->where('');
答案 1 :(得分:0)
如果您想确保使用新查询(没有任何参数或条件),则需要为给定模型创建新的ActiveQuery
对象。
$query = Yii::createObject(ActiveQuery::className(), [Post::class]);
或者在模型中添加辅助方法:
public static function freshFind()
{
return parent::find();
}
并使用它代替Post::find()
。
答案 2 :(得分:0)
你可以避免使用find()..使用findBySql
$sql = 'SELECT * FROM product';
$product= Product::findBySql($sql,)->all();
用这种方式你所有的产品型号..
你也可以使用
$sql = 'SELECT * FROM ' . Product::tableName() ;
用于避免产品的explici表名称