国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Benanntes Routing in Symfony 6 mithilfe des Controllers aus dem internen Verzeichnis
P粉511749537
P粉511749537 2024-03-26 16:27:48
0
1
597

Ich habe alle Controller in meinem Symfony 6-Projekt nach /src/Web/Controller verschoben, wie unten gezeigt

├── src
│   ├── ...
│   └── Web
│   |    ├── Controller
│   |    ├── ....
|   |── Kernel.php

Mein routes.yamlentsprechend ge?ndert

#routes.yaml
controllers:
    resource: ../src/Web/Controller/
    type: annotation

Das Problem ist nun, dass alle meine Routen einen Namen mit dem Pr?fix app_web haben. Ich vermute, dass es an dieser Struktur liegt.

$ php bin/console debug:router Die Befehlsausgabe lautet wie folgt:

...
...
app_web_post_index    GET|HEAD        ANY      ANY    /post/             
app_web_post_create   GET|HEAD|POST   ANY      ANY    /post/create

Hier m?chte ich nur den Namen haben post_index Wie entferne ich dieses Pr?fix?

P粉511749537
P粉511749537

Antworte allen(1)
P粉011684326

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

名稱是使用控制器的類和方法的完全限定名稱生成的(盡管由于某種原因沒有命名空間的最后一部分 -controller)。

如果您不想使用自動(dòng)生成的名稱,只需自己命名您的路線即可:

#[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');
    }
}

使用內(nèi)置選項(xiàng)您可以向一組路由添加前綴,但不要將其從自動(dòng)生成的名稱中刪除。

如果這對(duì)于您的用例“自動(dòng)”發(fā)生確實(shí)很重要,我想你可以構(gòu)建自己的路由加載器,但我想說這有點(diǎn)過分了。只需適當(dāng)?shù)孛酚?,或者使用自?dòng)生成的名稱即可。


顯式命名路由通常是一個(gè)更好的想法/實(shí)踐,因?yàn)槿绻谄渌魏蔚胤揭寐酚擅Q,即使您選擇將控制器重構(gòu)為不同的代碼結(jié)構(gòu),也可以保證名稱保持不變。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage