我还没有找到一种方法来自定义“列表”视图中显示的项目。 更具体一点:默认情况下,选择并显示数据库表中的所有记录,我希望能够稍微调整一下数据库选择,以便从表中只选择一部分项目。
答案 0 :(得分:5)
config:
list:
table_method: getForAdminList
然后,在相关的模型表类中,您可以定义条件来过滤记录:
public function getForAdminList()
{
$q = $this->createQuery('a')
->where('a.id > ?', 100);
return $q;
}
请注意,您必须返回查询,而不是记录集合。
答案 1 :(得分:0)
通常,您不会修改数据库调用,而是通过编辑generator.yml文件来更改显示的内容。
您应该感兴趣的部分是
config:
list:
display: [fields, to, display]
答案 2 :(得分:0)
在/backend/modules/*module_name*/actions/action.class.php中,您可以覆盖该模块的默认管理方法(如前端)。如果要过滤所有查询,可以覆盖getFilters()方法并添加默认参数:
class firmaActions extends autoFirmaActions
{
protected function getFilters(){
$filters = parent::getFilters();
$filters['level_id'] = '3';
return $filters;
}
}
如果您想查看autoModuleActions,可以在cache / 后端 / modules / autoModule / actions
中找到它