私は現在、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... 何か見逃していますか?