我正在使用Symfony 1.4和Doctrine。
我的应用程序的后端是使用Symfony的管理生成器构建的。 当我想显示基本内容时它很有用。
但是tehre并没有很多关于如何增强它并添加新页面的文档。
我们举一个例子: 我想在一个页面上列出已发布的项目,在另一个页面上列出待发布的项目。我在我的应用程序中使用了几种方法,但无法弄清楚最佳方法是什么:
table_method
?这里的最佳做法是什么? 你们通常如何定制管理员?
答案 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)
来传入的查询。