2013-03-19 2 views
5

タイプnullの正しい$id変数をダンプこのコードではnullのデフォルトパラメータを与える方法:XMLルーティングファイル

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

に対し、次のコードは、タイプstring$id変数を与えます:string(4) "null"

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

私は同様の結果を与えるために2を引き受ける

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

routing.xml、これは正常ですか?どのようにXMLでデフォルトのヌル値を与えるでしょうか?


  • 私は$id変数がnullであるかどうかをテストする/showUserパスを参照してください。
  • は、私はまた、<default key="id" />代わりの<default key="id">null</default>
+0

XMLから完全な 'default [key = id]'要素を削除するだけで何が起きますか? –

+0

デフォルト値がないので、404: 'GET/showUser"のルートが見つかりませんでした:( – Mick

答えて

6

ただ、パットの答えを明確にするために、これは固定し、それを指定するための正しい方法は、このようなものです:

<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> 
+0

あなたは私の答えを受け入れることができませんでした。 – Mick

2

この機能は(まだ)XMLで実装されていない=>なしの成功を試してみました。このbug reportを参照してください。

@Aitboudad:ルーティングXMLローダがnull値をサポートしていない、 に正しい方法はヌルXML要素を表すXSIである:なし= "真"。

関連する問題