【问题标题】:What's the best way to customize / add pages to the admin generator?将页面自定义/添加到管理生成器的最佳方式是什么?
【发布时间】:2010-03-26 10:01:11
【问题描述】:

我正在使用 Symfony 1.4 和 Doctrine。

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

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

我们举个例子: 我想在一页上列出已发布的项目,在另一页上列出要发布的项目。我在我的应用程序中使用了几种方法,但不知道最好的方法是什么:

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

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

【问题讨论】:

  • 只是检查一下:你知道你可以简单地用你自己的页面扩展你生成的actions.class.php 和templates/ 目录,就像使用一个普通的symfony 模块吗?这是添加页面的最简单方法,尽管您可能需要从生成的模板中捏出一点布局 HTML 以保持样式一致。

标签: symfony1 symfony-1.4 admin-generator


【解决方案1】:

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

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

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

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

Bleh :-) 抱歉,这有点脑残,但希望对您有所帮助! :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-04
    • 2022-11-19
    • 2011-10-10
    • 1970-01-01
    • 2011-04-08
    • 2010-11-09
    • 2016-10-12
    相关资源
    最近更新 更多