Symfony2捆绑了重用和路由

时间:2013-01-08 22:28:50

标签: php symfony

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

目前,我有2个捆绑:AdminBundleArticleBundle。我将一些方法写入ArticleBundle,如addActionlistAction等。此模块也有自己的routing.yml <中定义的路径(文章/添加,文章/编辑) / p>

当我处于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必须是可重用的。

THX

1 个答案:

答案 0 :(得分:1)

您可以在ArticleBundle中将您的操作设置为服务,然后使用(例如)

从您的管理员或其他Bundle中引用这些服务
$form = $this->get('kero_zen.article_bundle.add_action.form');
$formHandler = $this->get('kero_zen.article_bundle.add_action.handler');

类似于FOSU​​serBundle中的控制器。