http://example.com/company/d9c363ae-a1b7-11e6-a66d-9e9923e30d94/
とhttp://example.com/company/custom-domain.com
の両方を使用して到達可能なエンティティがあります。symfonyルーティング:UUIDからカスタムスラッグにリダイレクトする方法
今や、Company
にはスラグがあるかもしれませんが、スラグを持つことはできません。
ドメインセットがあるかどうかを確認したいのですが、そのURLがUUIDに基づいている場合は、それをスラッグ付きのバージョンにリダイレクトしたいと思います。ドメインが設定されていない場合は、単にUUIDを使用してページを表示します。
私はthis Symfony's tutorial以下、これをやった:
# routing.yml
redirect_company_to_domain:
path: /company/{domain_host_or_id}
defaults: { _controller: AppBundle:Company:redirectToDomain }
requirements:
url: .*/$
methods: [GET]
そして、私のコントローラで私はこの方法を記述します:
/**
* Redirect the URLs with a trailing slash to the version without it.
*
* @param Request $request
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function redirectToDomainAction(Company $company, Request $request)
{
die(dump($company));
}
問題は、コントローラが呼び出されないということです。
私は何が間違っているのか、間違っていますか?なぜ路線が路線に邪魔されないのですか?
routing.yml
で注釈と設定が混在している可能性がありますか? CompanyController
のルートはすべて注釈を使用して設定されているためです。
しかし、使用してapp/console debug:router
、私は正しくルートセットを見ることができます:
redirect_company_to_domain GET ANY ANY /company/{domain_host_or_id}
はまた、私は最後のスラッシュを削除するには、それを実現してきたように、チュートリアルで説明した方法が機能することを確認しています。
なぜこのリダイレクトを作成できないのかわかりません。