我將所有控制器移至 Symfony 6 專案中的 /src/Web/Controller
,如下所示
├── src │ ├── ... │ └── Web │ | ├── Controller │ | ├── .... | |── Kernel.php
我的routes.yaml
相應修改
#routes.yaml controllers: resource: ../src/Web/Controller/ type: annotation
現在的問題是我的所有路由都有一個以 app_web
為前綴的名稱。我想這是由於這種結構。
$ php bin/console debug:router
指令輸出如下:
... ... app_web_post_index GET|HEAD ANY ANY /post/ app_web_post_create GET|HEAD|POST ANY ANY /post/create
這裡我只希望名稱為 post_
P粉0116843262024-03-27 12:11:43
如果您沒有明確命名路由,它們會為您命名。
名稱是使用控制器的類別和方法的完全限定名稱產生的(儘管由於某種原因沒有命名空間的最後一部分 -controller
)。
如果您不想使用自動產生的名稱,只需自己命名您的路線即可:
#[Route('/post')] class Post { #[Route(path: '/', name: 'post_index', methods: ['HEAD', 'GET'])] public function index(Request $request): Response { return new Response('post index'); } #[Route(path: '/create', name: 'post_create', methods: ['HEAD', 'GET', 'POST'])] public function create(Request $request): Response { return new Response('post create'); } }
使用%E