2011-07-09 39 views
9
'[Syntax Error] line 0, col 71: Error: Expected end of string, got 'LIMIT'' 

Dưới đây là mã của tôi:Doctrine LIMIT Cú pháp Lỗi?

public function getLatestChapters() 
    { 
     return $this->_em->createQuery('SELECT c, m FROM models\Chapter c JOIN c.Manga m ORDER BY c.CreateDate LIMIT 10')->getResult(); 
    } 

Điều gì có thể posibly vấn đề này? Làm thế nào tôi có thể sử dụng LIMIT trong Doctrine?

Tôi đang sử dụng Học thuyết 2

Trả lời

15

Có vẻ như có no LIMIT/OFFSET trong DQL anymore.

$qb = $em->createQueryBuilder(); 
//.. build your query 
$q = $qb->getQuery(); 
$q->setFirstResult($offset); 
$q->setMaxResults($limit); 
$result = $q->getResult(); 
3

Tôi muốn đóng góp bài này và muốn nói với mọi người rằng Nếu bạn muốn sử dụng DBAL với giới hạn trong đơn vị xét nghiệm của bạn, bạn có thể sử dụng như sau:

$client = static::createClient() 
$em = $client->getContainer()->get('doctrine')->getManager(); 
$query = $em->createQuery('WRITE YOUR QUERY HERE'); 
$query->setFirstResult(0); 
$query->setMaxResults(1); 
$data = $query->getResult(); 

Cùng mã có thể được sử dụng trong bộ điều khiển cũng với một số sửa đổi :)