これを行う1つの方法は、security.ymlファイルを使用して一連のルートを保護することです。例えば;
access_control:
...
- { path: ^/admin, roles: [ROLE_ADMIN] }
次に、アクションを作成するときに、admin以外のすべてのユーザーからアクションを保護するために、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を使用して同じ方法でそれを行うことができます