0

几天前我开始用 SF2 写个人博客。我正在编写后端代码,并注意可重用性。

此刻,我有 2 个捆绑包:AdminBundleArticleBundle. 我写了一些方法到ArticleBundlelike addAction,,listAction等等中。这个模块也有自己定义的路由(article/add,article/edit)在他的routing.yml

当我在我的 AdminBundle 的一部分(例如:admin/article/add)中时,我会这样做AdminController

public function addAction() {
    return $this->render('AdminBundle:Admin:add_article.html.twig');
}

在我的add_article.html.twig

{% block admin_content %}        // Inheritance of admin view
{% render url('article_add') %}  // article_add = article/add = route in ArticleBundle
{% endblock %}

这部分工作得很好,但是在渲染后一切都由管理ArticleBundle并且我的路由变坏了(例如:在我的表单提交路由是'article/add'而不是'admin/article/add'之后)。

所以我不知道如何将这两个捆绑在一起,记住ArticleBundle必须是可重用的。

谢谢

4

1 回答 1

1

您可以在 ArticleBundle 中将您的操作设置为服务,然后使用(例如)从您的管理员或其他 Bundle 中引用这些服务

$form = $this->get('kero_zen.article_bundle.add_action.form');
$formHandler = $this->get('kero_zen.article_bundle.add_action.handler');

类似于 FOSUserBundle 中的控制器。

于 2013-01-09T09:27:38.637 回答