私はこのコードを以下に持っています:
/**
* Lists all User entities.
*
* @Route("/{cid}",defaults={"cid" = null},name="user")
* @Template()
*/
public function indexAction($cid=null)
{}
site/user/1
と入力すると動作しますが、site/user/
と入力すると次のようになります。
No route found
両方のルートが機能するようにするにはどうすればよいですか?
site/user
(最後にバックスラッシュがないことに注意してください)。
一般的には動作するはずですが、比較的似た構成が動作しています。
しかし、他のすべてが失敗した場合、同じアクションに対して複数のルートを常に定義できます。
/**
* Lists all User entities.
*
* @Route("/", name="user_no_cid")
* @Route("/{cid}", name="user")
* @Template()
*/
public function indexAction($cid=null)
{
ルーティング構成にymlファイルを使用し、次のようにルーティングパラメーターにidのデフォルト値を追加します。
user:
pattern: /site/user/{id}
defaults: { _controller: YourBundle:Default:index, id: 1 }
ドキュメントを参照してください こちら
GETパラメーターを使用して行うこともできます。
/**
* @param Request $request
*
* @return Response
*/
public function displayDetailAction(Request $request) : Response
{
if ($courseId = $request->query->get('courseId')) {