1

私は現在、Symfony4 (4.3) プロジェクトでルーティングに行き詰まっています。私の問題は非常に単純です。コントローラーでルート注釈を使用したいのですが、これらの順序を定義したいと考えています。

たとえば、次のルーティングを持つ 2 つのコントローラーがあるとします。

class BarController extends AbstractController
{
    /**
     * @Route("/test/{data}", name="app_bar")
     */
    public function index($data)
    {
        // ...
        return $this->render('index.html.twig', [
            'data' => $data,
        ]);
    }
}

class FooController extends AbstractController
{
    /**
     * @Route("/test/my_value", name="app_foo")
     */
    public function index()
    {
        // ...
        return $this->render('index.html.twig', [
            'data' => 'my_value',
        ]);
    }
}

このconfig/routes/annotations.yamlようにルートを定義します

app_controllers:
    resource: ../../src/Controller/
    type: annotation

次に、私が電話をかけた場合、彼のアクションが定義/test/my_valueされているのでリダイレクトされたいのですが、ルートがアルファベット順にロードされるように、ルート付きのアクションが最初に呼び出されます。FooControllerindex@Route("/test/my_value", name="app_foo")indexBarControllerapp_bar

だから私は次のルーティングを定義しようとしました:

app_foo_controller:
    resource: ../../src/Controller/FooController.php
    type: annotation
app_controllers:
    resource: ../../src/Controller/
    type: annotation

しかし、これは機能しませんでした.BarControllerと彼のapp_barルートは、FooControllerからのルートの前に呼び出さapp_fooれました.

config/routes/annotations.yamlまた、両方に任意のタイプのルートが含まれている可能性があるため、 vsの目的がわかりませんconfig/routes.yaml... 何か見逃していますか?

4

1 に答える 1