1

注釈を使用してルートを設定しました。私には正しく見えます、Symfony2はそれが間違っていると言います。ルートは次のとおりです。

@Route("/news/{id}/{slug}", name="newsarticle")

ルートに一致すると思われるサンプルURLは次のとおりです。

http://somesite.com/news/202/my-news-title

関数スケルトンは次のとおりです。

public function newsArticleAction($id, $slug)
{

}

ここで何が欠けていますか?500エラーが発生し、ログに次のように表示されます。

[2012-10-30 20:36:35] request.INFO:一致したルート "newsarticle"(パラメーター: "_ controller": "App \ SiteBundle \ Controller \ DefaultController :: newsArticleAction"、 "id": "202"、 " slug ":" my-news-title "、" _route ":" newsarticle ")[] [] [2012-10-30 20:36:36] app.INFO:リスナーから:"newsarticle"ルートにいくつかの欠落があります必須パラメーター( "id")。[] [] [2012-10-30 20:36:36] request.CRITICAL:Symfony \ Component \ Routing \ Exception \ MissingMandatoryParametersException: "newsarticle"ルートにいくつかの必須パラメーター( "id")がありません。(キャッチされない例外)/home/user/app/cache/prod/classes.php行676 [] []

4

1 に答える 1

10

このエラーは、URLをルートに一致させる場合ではなく、ルートからURLを生成する場合に発生します。

path('newsarticle'プロジェクトでまたはを検索しますgenerateUrl('newsarticle'。必要なすべてのパラメーターを渡さずにURLを生成する試みを見つける必要があります—次のようなものです。

{{ path('newsarticle', {'slug': news.slug} }}

それは次のように見える必要がありますが:

{{ path('newsarticle', {'id': news.id, 'slug': news.slug} }}
于 2012-10-31T09:48:51.303 に答える