をオフセット:使用制限と私は改ページをやろうとしているが、エラーがあるDoctrine2クエリで
[Syntax Error] line 0, col 57: Error: Expected end of string, got 'limit'
私はこれは正しい構文(およびロジック)であればかなりわからないんだけど作るために私のクエリ:
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
されるように)、それは愚かなとさえ間違っていることを知っているが、私はちょうどクエリが動作するかどうか試してみたかった、そしてそれはdidnのt。
あなたはそれが動作しませんでした何を意味するのですか?何かエラーがありますか? DQLに直接挿入するのではなく、 'setParameter(" user "、$ user)'を使うべきです。また、あなたのエンティティ定義を見ることはいいでしょう。編集:ちょうど編集を見た。 「オフセット」にスペースが追加されている必要があります – Flukey
はい、エラーが表示されます。質問の先頭にあります。 – Faery
このバンドルはあなたにとって興味深いかもしれません:http://knpbundles.com/KnpLabs/KnpPaginatorBundle – Flukey