Symfony 6中使用內部目錄中的控制器的命名路由
P粉511749537
P粉511749537 2024-03-26 16:27:48
0
1
418

我將所有控制器移至 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粉511749537
P粉511749537

全部回覆(1)
P粉011684326

如果您沒有明確命名路由,它們會為您命名。

名稱是使用控制器的類別和方法的完全限定名稱產生的(儘管由於某種原因沒有命名空間的最後一部分 -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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!