我想开发一个基于Slim框架和Doctrine 2的RESTful API。我有详细的权限管理。因此,我的权限定义为:role:admin|entity:person|column:name|write:1
我正在考虑在web服务中实现正确管理的最有效方法。因此,在构建查询时,我需要过滤计算的列子集。什么是最好的地方,仍然可以让我使用所有默认方法,如findAll()等。我当然可以过滤我的字段,如下所示:
$all = Article::createQuery('a')->getArrayResult();
/*this is getting ALL the fields -it would be better to filter before
retrieving from the db
*/
$allFiltered = array();
foreach($all as $index=>$article){
$filteredArticle = new Article();
foreach($user->getPermission('Article','r') as $permission){
$column = $permission->column;
$filteredArticle->$column = $article->$column;
}
$allFiltered[$index]=$filteredArticle
)
$app->response->setBody(json_encode($all));
有没有一种方法可以在一个地方为所有检索方法做到这一点?
Doctrrine2可以选择部分对象单据您可以获取所有允许的列,只需连接一个查询。。。