2011-03-03 37 views
1

我还没有找到一种方法来自定义哪些项目显示在“列表”视图。 更具体一点:默认情况下,数据库表中的所有记录都被选中并显示,我希望能够稍微调整数据库选择,以便仅从表中选择一部分项目。symfony doctrine管理生成器 - >自定义列表

回答

5
config: 
    list: 
    table_method: getForAdminList 

然后,在相关模型表格类,你可以定义自己的条件来筛选记录:

public function getForAdminList() 
    {   
    $q = $this->createQuery('a') 
     ->where('a.id > ?', 100); 
    return $q; 
    } 

请注意,您必须返回查询,而不是记录的集合。

0

通常情况下,您不会修改数据库调用,而是会修改编辑generator.yml文件所显示的内容。

的一部分,您应该感兴趣的是

config: 
    list: 
    display: [fields, to, display] 
+0

我无法使用该部分,因为我不想过滤字段但过滤显示的记录。 – Emerick 2011-03-03 13:56:04

+0

管理员过滤器怎么样?如果我想生成自定义文件环境表? – JackLeo 2011-04-06 11:13:06

0

在/ 后端 /modules/*module_name*/actions/action.class.php您可以覆盖该模块的默认管理方法(如在前端)。如果你想过滤所有querys可以覆盖getFilters()方法,并添加默认PARAM这样的:

class firmaActions extends autoFirmaActions 
{ 
    protected function getFilters(){ 
     $filters = parent::getFilters(); 
     $filters['level_id'] = '3'; 
     return $filters; 
    } 
} 

如果你想看看autoModuleActions的你可以找到它在缓存/ 后端 /模块/ autoModule /动作