2016-04-05 5 views
2

私はSymfony2のプロジェクトに小枝を持つURLを生成してみてください。 私のURLは、私はそれが仕事だが、私は偽置いたときにエラーがスローされ小枝に真置くとき、パラメータとしてブール値を取ります。例外は、 "ルートの "テンプレート のレンダリング( "パラメータ" ブール中にスローされたSymfony2の小枝とブール偽

route_1は[^ /] ++ "("」 が与えられた)" を一致させる必要があります"。

{{ path('route_1', {'id': item.id, 'boolean': false }) }} 

私はこのパラメータのいずれかの条件を持っていない。

/** 
    * @Route("route1-{id}/boolean{boolean}", requirements={"id" = "\d+"}, name="route_1") 
    */ 
    public function Route1Action($id, $boolean, Request $request) { 
     //Some stuff 
    } 

編集

したがって、URLのブール値が悪いです。私は数とPHPをbooleanで自動的に変換します。 0は偽であり、他のすべての数は真です。このコードでは

<?php 
var_dump((bool) "");  // bool(false) 
var_dump((bool) 1);   // bool(true) 
var_dump((bool) -2);  // bool(true) 
var_dump((bool) "foo");  // bool(true) 
var_dump((bool) 2.3e5);  // bool(true) 
var_dump((bool) array(12)); // bool(true) 
var_dump((bool) array()); // bool(false) 
var_dump((bool) "false"); // bool(true) 
?> 

http://php.net/manual/en/language.types.boolean.php

それが仕事だ:

処置:生成する

/** 
* @Route("route1-{id}/boolean{boolean}", requirements={"id" = "\d+", "boolean" = "\d+"}, name="route_1") 
*/ 
public function Route1Action($id, $boolean, Request $request) { 
    //Some stuff 
} 

URL:

{{ path('route_1', {'id': item.id, 'boolean': 0 }) }} //To send false 
{{ path('route_1', {'id': item.id, 'boolean': 1 }) }} //To send true (1 or any other numbers) 

のThあなたのお手伝いをします。 :)

+0

あなたの行動を示してください。 – Mattia

+0

"false"で試してください – MouradK

答えて

2

これは、URLにどのようなものが含まれているかによって異なります。ブール変数は、URLが文字列であるため、一般的には良い考えではありません。

ブール変数はtrueまたは1と表されますか?

{{ path('route_1', {'id': item.id, 'boolean': 'false' }) }} 

または

{{ path('route_1', {'id': item.id, 'boolean': 1 }) }} 

また、私が何かを送っができ、その場合には、引数の要件を指定する必要があります。

とにかく、数値型やテキストのようなテキスト表現可能な変数を常に渡す必要があります。

1
<a href="{{ path('route_1', {'id': item.id, 'boolean': 'false' }) }}">Link</a> 
+0

私はルートでブール値を使うのは良い考えではないと思います。 –