[symfony] Doctrine2 쿼리에서 Limit 및 Offset 사용


Answers

$towary = $this->getDoctrine()
   ->getRepository('AcmeStoreBundle:Towar') 
   ->findBy(array(),array(),10,($current-1)*$numItemsPerPage);
Question

페이지 매김을하려고하는데 오류가 있습니다.

[구문 오류] 줄 0, 열 57 : 오류 : 문자열의 끝 예상, '제한'있어

이 쿼리가 올바른 구문 (및 논리)인지 확실하지 않습니다.

public function getFriendsFromTo ($user, $limit, $offset)
{
     return $this->getEntityManager()
        ->createQuery('SELECT f FROM EMMyFriendsBundle:Friend f WHERE f.user='.$user.' limit '.$limit. 'offset' .$offset)
        ->getResult();
}

친구 및 사용자는 manyToOne 및 oneToMany와 관련이 있으므로 친구 테이블에는 user_id 필드가 있습니다.

이것은 내 컨트롤러에 있습니다 :

$user = $this->get('security.context')->getToken()->getUser();
$id = $user->getId();

$friends = $user->getFriends();
$result = count($friends)
$FR_PER_PAGE = 7;
$pages = $result/$FR_PER_PAGE;

$em = $this->getDoctrine()->getEntityManager();
$friends = $em->getRepository('EMMyFriendsBundle:Friend')
         ->getFriendsFromTo($id, $FR_PER_PAGE, $page*$FR_PER_PAGE); 

나는 그것이 어리 석고 심지어 잘못되었다는 것을 안다. (특히 $page*$FR_PER_PAGE 가되는 세 번째 매개 변수).하지만 쿼리가 작동하면 시도하기를 원한다.




너는 또한 사용할 수있다.

$ query-> getSingleResult ();




Related