私はquerybuilderでEntityRepositoryとしてクエリを作成しています。私は代わりに関係の値でクエリを注文しようとしている(IDによる)ManyToOne関係を持っています。以下のコードスニペット。Symfony3 QueryBuilder orderByエンティティフィールド
namespace AppBundle\Entity\Repository;
class ContratoRepository extends EntityRepository
{
public function getWithoutParams($ops)
{
$query=$this->createQueryBuilder('e')
->orderBy('e.proc','ASC');
return $query->getQuery()->getResult();
}
今私のエンティティ
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\Repository\ContratoRepository")
*/
class Contrato
{
...
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\ContratosAdmin\Proc")
* @ORM\JoinColumn(name="id_proc", referencedColumnName="id_proc")
* @ORM\OrderBy({"name" = "ASC"})
**/
private $proc;
今私の質問ですが、それは私のPROCエンティティ内の「名前」フィールドで注文することは可能でしょうか?今のように、それはイドです。
ありがとう、 よろしくお願いいたします。
'ContratoRepository'で' Contrato'と 'Proc'エンティティのデータを取得するために' join'リクエストを作成してみてください。あなたのqueryBuilderリクエストでは ' - > orderBy( 'p.name'、 'ASC');' 'p 'はあなたの' 'Proc''エンティティを表します。 –
Grechkaが私の問題を解決してくれてありがとう。 – Noize