我几天前正在用SF2开始一个人物博客。我正在编写我的后端,注意可重用性。
目前,我有2个捆绑:AdminBundle
和ArticleBundle
。我将一些方法写入ArticleBundle
,如addAction
,listAction
等。此模块也有自己的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
答案 0 :(得分:1)
您可以在ArticleBundle中将您的操作设置为服务,然后使用(例如)
从您的管理员或其他Bundle中引用这些服务$form = $this->get('kero_zen.article_bundle.add_action.form');
$formHandler = $this->get('kero_zen.article_bundle.add_action.handler');
类似于FOSUserBundle中的控制器。