2015-10-23 33 views
1

當我使用這個功能:如何教義使用排序依據與findBY功能

$TopItemList = $app['orm.em']->getRepository('\Eccube\Entity\Product') 
->findBy(array('name' => array('booktest1', 'booktest2', 'booktest3'))); 

但我想在「名稱」命令的結果:「booktest1」,「booktest2」,「booktest3」,因爲現在的訂單是'booktest3','booktest1','booktest2'。我不知道怎麼用「orderby」

+0

幫助我們提供幫助a [如何創建一個最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)。 – kittikun

+0

你想按'name'字段排列結果嗎? – scoolnico

回答

5

這裏是爲了你的實體

$TopItemList = $app['orm.em'] 
    ->getRepository('\Eccube\Entity\Product') 
     ->findBy(
      array('name'), 
      array(
       'booktest1' => 'ASC', 
       'booktest2' => 'ASC', 
       'booktest3' => 'ASC' 
      ) 
     ); 
+0

thx your answer $ TopItemList = $ app ['orm.em'] - > getRepository('\ Eccube \ Entity \ Product') - > findBy(array('name'=> array('booktest1','booktest2', 'booktest3')));它可以工作,但你的代碼不能工作,現在我想要得到booktest的命令1 2 3,但在網頁中顯示我3 1 2我不知道爲什麼。可能是ASC問題 –

0

正如@sdespont說,爲了作爲findBy方法的第二個參數傳遞的方式。

一切都在doctrine docs

的EntityRepository#findBy()方法還接受排序, 限制,作爲第二偏移到第四個參數:

<?php $tenUsers = 
$em->getRepository('MyProject\Domain\User')->findBy(array('age' => 
20), array('name' => 'ASC'), 10, 0); 
+0

thx您的回答$ TopItemList = $ app ['orm.em'] - > getRepository('\ Eccube \ Entity \ Product') - > findBy(array('name'=> array('booktest1' ,'booktest2','booktest3')));它可以工作,但我想卡特booktest 1 2 3的順序,但在網頁上顯示我3 1 2我不知道爲什麼。可能是ASC問題 –

+0

$ TopItemList = $ app ['orm.em'] - > getRepository('\ Eccube \ Entity \ Product') - > findBy( ['name'=>''booktest1','booktest2', 'booktest3']], ['name'=>'ASC'] ); 你確定它沒有按預期工作? –

+0

如果我想得到booktest的命令2 1 3不能使用ASC或DESC,怎麼做?謝謝你 –