Fer*_*dau 2 php soft-delete yii
我想知道的是:在Yii中是否可以在模型中添加某种属性,因此只显示属性isdeleted设置为的项目0?
所以我正在寻找一种方法,Yii会忽略这些项目的实例...类似于:
public function rules()
{
return array(
...
array('isdeleted', 'shouldEqualTo=>0'),
...
);
}
Run Code Online (Sandbox Code Playgroud)
我觉得乱搞rules()将是一种方式,但它不起作用或我做错了...
您应该使用scopes().
public function scopes()
{
return array('active' => array('condition' => 'isdeleted = 0'));
}
Run Code Online (Sandbox Code Playgroud)
然后
$active = MyModel::model()->active()->findAll();
Run Code Online (Sandbox Code Playgroud)
编辑:
如果要使过滤器默认,请实现defaultScope()函数:
public function defaultScope()
{
return array('condition' => 'isdeleted = 0');
}
Run Code Online (Sandbox Code Playgroud)