2016-10-17 9 views
-2

私はカスタムショートカット関数でQueryBuilderを使いたいと思います。 exempleの場合 :代わりに私のレポでの書き込みのsymfonyのQueryBuilderクラスを拡張する最善の方法

$this->createQueryBuilder('post')->where(...)->andwhere(...) 

使用のようなもの:

isPublished()は、複数のquerybuilder機能についてshorcut方法の種類( ->where(...)->andwhere(...)

ある
$this->createQueryBuilder('post')->isPublished() 

あなたの助けを事前にThx。

+1

。代わりに、私はメソッド/関数 'isPublished(QueryBuilder $ qb)'を提案し、その本体はあなたの一連の '$ qb-> where(...) - > andwhere(...)'を呼び出します。このようにして、コードを再利用することができます。これは私が思うように、あなたがしたいことです。 –

+0

@JanMaresと同様に、これを行うリポジトリ機能を作成するだけです。 – Richard

答えて

1

1)は、このようなあなたのリポジトリクラスを作成します。

<?php 

namespace Entity; 

use Doctrine\ORM\EntityManager; 

class MyRepository extends EntityManager 
{ 

    public function isPublished() 
    { 

    } 
} 

2)お使いのコントローラでは:私はそれに対してお勧めします

$entityManager = $this->get('doctrine.orm.entity_manager'); 
$entityManager->getRepository('MyBundle:MyRepository')->isPublished(); 
関連する問題