自定义/向管理生成器添加页面的最佳方法是什么?

时间:2010-03-26 10:01:11

标签: symfony1 symfony-1.4 admin-generator

我正在使用Symfony 1.4和Doctrine。

我的应用程序的后端是使用Symfony的管理生成器构建的。 当我想显示基本内容时它很有用。

但是tehre并没有很多关于如何增强它并添加新页面的文档。

我们举一个例子: 我想在一个页面上列出已发布的项目,在另一个页面上列出待发布的项目。我在我的应用程序中使用了几种方法,但无法弄清楚最佳方法是什么:

  • 使用过滤器,然后根据您的位置修改模板?
  • 创建另一个模块,调用另一个table_method
  • 我不知道的其他一些技巧?

这里的最佳做法是什么? 你们通常如何定制管理员?

1 个答案:

答案 0 :(得分:2)

这里无耻的自我推销。本周我在自定义管理生成器时写了blog post - 我做的一件事就是在生成器中添加新页面等。我这样做的方式可能有点硬核,但效果很好: - )

开始查看的最佳位置是模块的自动生成的操作类,并将其扩展到app/module/actions/actions.class.php文件中。特别是,设置ORM寻呼机的索引动作。您应该能够使用ORM中的任何查询为ORM寻呼机提供数据 - 如果我需要更改它,我会使用与正常情况相同的方式生成的Doctrine查询传递给寻呼机。这意味着我可以自定义显示的字段,包括在单个查询中加入的其他表中的字段。这是你上面提到的'表格方法'。

过滤器也可以正常工作 - 这取决于您的使用案例以及过滤器是否合适,尤其是显示器。如果你想要一个/showpublisheditems page,那么我将使用新的操作和寻呼机的新查询。如果您想进行实时自定义,请使用过滤器选项。

我认为过滤器文档有点缺乏 - 快速提示,他们在顶级过滤器类(lib / filter / ...)中寻找一个addYourColumnNameColumnQuery()方法,它接受一个查询in并使用例如addWhere("x.column_name = ?", $foo)来传入的查询。

Bleh :-)对不起,那是一个大脑转储,但希望它有所帮助! : - )