2010-11-14 7 views

ответ

2

В D2 нет ни одного запеченного, но, вероятно, это не будет слишком большой частью для реализации системы, подобной Yii, с использованием класса QueryBuilder Doctrine 2, который позволяет построить запрос на куски, используя более программный подход.

$qb = $em->createQueryBuilder; 
$qb->select('u') 
    ->from('User', 'u') 
    ->where('active IS NOT NULL); 

Оказывается, что магазины по реализации YII в запрос критерии в массиве, и они вводятся в запросе, когда используется именованная. Вы можете легко сделать что-то подобное, которое возвращает объект QueryBuilder с предварительно загруженными параметрами.

class UserRepository extends EntityRepository 
{ 
    private $_namedScopes; 

    public getActiveUsersWhoLoggedInLastWeek() 
    { 
     // return a query builder for this model 
     $qb = $this->_namedScopes->initScope(); 

     // start adding pre-defined criteria 
     $qb = $this->_namedScopes->addScope($qb, 'active') 
     $qb = $this->_namedScopes->addScope($qb, 'lastWeek'); 

     return $qb->getQuery()->getResult(); 
    } 
} 

Возможно, существует несколько разных способов приблизиться к этому, так что это всего лишь один быстрый пример. Трудная часть, вероятно, будет выяснять, как справляться с столкновениями с критериями.

Смежные вопросы