7

このコード$idは、タイプ の正しい変数をダンプしますnull

/**
 * Show user
 *
 * @Route("/show/{id}", name="acme_user_show", defaults={"id"=null}, requirements={"id"="\d+"})
 */
public function showUserAction($id = null)
{
    var_dump($id);
}

一方、次のコードは$idtype の変数を与えますstring:string(4) "null"

/**
 * Show user
 *
 */
public function showUserAction($id = null)
{
    var_dump($id);
}

ルーティング.xml

<route id="acme_user_show" pattern="/show/{id}">
    <default key="_controller">AcmeUserBundle:User:show</default>
    <default key="id">null</default>
    <requirement key="id">\d+</requirement>
</route>

2でも同様の結果が得られると思いますが、これは正常ですか? xml でデフォルトの null 値を指定するにはどうすればよいですか?


  • パスにアクセスして、変数が null/showUserかどうかをテストします。$id
  • <default key="id" />私も代わりに試しました<default key="id">null</default>=>成功しませんでした
4

2 に答える 2

8

パットの答えを明確にするために、これは修正されました。正しい指定方法は次のとおりです。

 <default key="threadId" xsi:nil="true" />

したがって、あなたの場合の完全なルート仕様は次のようになります。

<route id="acme_user_show" pattern="/show/{id}">
    <default key="_controller">AcmeUserBundle:User:show</default>
    <default key="id" xsi:nil="true" />
    <requirement key="id">\d+</requirement>
</route>
于 2014-04-08T18:34:29.427 に答える
2

この機能は(まだ)xmlには実装されていません。このバグレポートを参照してください。

@Aitboudad:ルーティングxmlローダーはnull値をサポートしていません。nullxml要素を表す正しい方法はxsi:nil="true"です。

于 2013-03-20T00:01:28.763 に答える