値が含まれる場合と含まれない場合があるルートがあり、それに基づいてDoctrineにクエリを実行したい、
/**
* @Route("/{productType}/{region}/{town}/{road}", name="product_type" , defaults={"productType" = null , "region" = null , "town" = null , "road" = null })
* @Template()
*/
public function productTypeAction($productType, $region , $town , $road)
{
$properties = $this->getDoctrine()
->getRepository('MyBundle:Product')
->findBy(
array('productType' => $productType,
'region' => $region,
'town' => $town,
'road' => $road
),
array('id' => 'ASC'));
return 'mytwig';
}
たとえば、次のようになります。
http://localhost/book/england/london/streetroad
Region of England 、 London の町、 Streetroad の道路を含む Books をクエリします。
ルート:
http://localhost/book
Books を照会し、すべての本を返す必要があります。
代わりに、現在は単に querinyg です:
t0.productid = ?
AND t0.region IS NULL
AND t0.town IS NULL
AND t0.road IS NULL
これは理にかなっていますが、必要な結果を得るための最良の方法は何ですか? または、DQL を元に戻す必要がありますか?