我想从我的基地返回一些记录(例如用户角色) 而且我通常使用函数 find()、findAll() 等,而且我总是必须这样写“条件”:不显示角色 admin (name!=admin)。 我的问题是,如何在 RoleModel 中为所有函数设置返回此条件。
对不起英语!
再见!
最佳答案
使用 beforeFind()
( http://book.cakephp.org/view/680/beforeFind ) 回调来处理这类事情。这是我不时使用的一个,可确保只返回事件记录:
function beforeFind( $queryData )
{
$conditions = $queryData['conditions'];
if( !is_array( $conditions ) ) {
if( !$conditions ) {
$conditions = array();
}
else {
$conditions = array( $conditions );
}
}
if( !array_key_exists( $conditions, 'active' ) && !isset( $conditions[$this->alias . '.active'] ) ) {
$conditions[$this->alias . '.active'] = 1;
}
return true;
}
这有点过时了,所以语法可能不准确,但它应该给你一些东西开始。我认为一切都井井有条,也许除了几个函数调用中的参数顺序。反正应该很近了。
关于cakephp - 不要在 CakePHP 中显示某些记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2336544/