我正在使用 Symfony 1.4 和 Doctrine。

我的应用程序的后端是使用 Symfony 的管理生成器构建的。当我想展示基本的东西时它非常有用。

但关于如何增强它和添加新页面的文档并不多。

让我们举个例子:我想在一页上列出已发布的项目,在另一页上列出即将发布的项目。我在我的应用程序中使用了多种方法,但无法找出最好的方法是什么:

  • 使用过滤器,然后根据您所在的位置修改模板?
  • 创建另一个模块调用不同的 table_method?
  • 还有其他我不知道的技术吗?

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

有帮助吗?

解决方案

在这里无耻地自我推销。我写了一个 博客文章 本周自定义管理生成器 - 我所做的一件事是将新页面等添加到生成器中。我的做法可能有点硬核,但效果很好:-)

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

过滤器也同样有效 - 这取决于您的用例以及过滤器是否适合,特别是对于显示。如果你想要一个 /showpublisheditems page, ,然后我会执行一个新的操作和寻呼机的新查询。如果您想要即时定制,请使用过滤器选项。

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

Bleh :-) 抱歉,这有点令人费解,但希望它能有所帮助!:-)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top