47

私は以下のコードを持っています:

/**
 * 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

両方のルートが機能するようにするにはどうすればよいですか?

4

3 に答える 3

80

に行ってみてくださいsite/user(最後にバックスラッシュがないことに注意してください)。

一般的にはうまくいくはずです。私は比較的似たような設定をしています。

しかし、他のすべてが失敗した場合は、同じアクションに対していつでも複数のルートを定義できます。

/**
 * Lists all User entities.
 *
 * @Route("/", name="user_no_cid")
 * @Route("/{cid}", name="user")
 * @Template()
 */
public function indexAction($cid=null)
{
于 2012-08-16T07:04:03.837 に答える
38

ルーティング構成に yml ファイルを使用し、次のようにルーティング パラメーターに id のデフォルト値を追加します。

user:
  pattern:   /site/user/{id}
  defaults:  { _controller: YourBundle:Default:index, id: 1 }

こちらのドキュメントを参照してください

于 2012-08-16T07:01:17.007 に答える
7

GET パラメータを使用して実行することもできます。

/**
 * @param Request $request
 *
 * @return Response
 */
public function displayDetailAction(Request $request) : Response
{
    if ($courseId = $request->query->get('courseId')) {
于 2016-01-13T11:40:03.260 に答える