執行此操作的一種方法是使用security.yml文件來保護一組路徑。例如;
access_control:
...
- { path: ^/admin, roles: [ROLE_ADMIN] }
然後當你創建你的動作時,你只需要給他們一個帶有管理員前綴的路由,以防止他們對除管理員以外的所有用戶。我的例子使用註釋來進行路由,但你可以用yml來做同樣的事情。
/**
* Edit a Blog entity.
*
* @Route("/admin/blog/{id}/edit", name="blog_edit")
* @Template()
*/
public function editAction()
{
...
或者你也可以通過在前面的類固定在控制器中的每一個動作:
/**
* AdminBlog controller.
*
* @Route("/admin/blog")
*/
class AdminBlogController extends Controller
{
...
然後創建另一個控制器負責處理顯示的博客文章給最終用戶,並給他們不安全的路線。
如果你想在單獨的包,以確保其他地區你可以做到這一點通過同樣的方式已經安全和不安全的控制器/ methods.actions
退房的預製管理解決方案,如SonataAdmin(HTTPS之一: //github.com/sonata-project/SonataAdminBundle)或Symfony2admingenerator(這是我更喜歡的 - https://github.com/symfony2admingenerator/AdmingeneratorGeneratorBundle)。 – Mike