预期的字符串结尾,在 DQL Symfony 中使用 LIMIT 时得到 'LIMIT'
Expected end of string, got 'LIMIT' when using LIMIT in DQL Symfony
我需要从我的 table 中获取最后一个 ID,以便我可以在另一个函数中使用它 我在我的存储库中创建了这个函数,但我没有工作,它显示了一个错误:
[Syntax Error] line 0, col 60: Error: Expected end of string, got
'LIMIT'
我正在使用的功能:
public function LastIdCart()
{
$query = $this->getEntityManager()
->createQuery("select i.id from BoutiqueBundle:Panier i ORDER BY
i.id DESC LIMIT 1");
return $query->getResult();
}
class YourController extends Controller {
*********************************************************
public function yourAction( *** ) {
$youLastRecord = $this->getDoctrine()->getRepository(YourEntity::class)->findOneBy(
array(),
array('id' => 'DESC')
);
}
}
将 OFFSET
and/or LIMIT
与 DQL Query
一起使用的正确方法是在 $query
对象上使用以下 api 作为关注:
Query::setMaxResults($maxResults)
Query::setFirstResult($offset)
如文档中所述First and Max Result Items (DQL Query Only)
例如,您的代码应如下所示:
public function LastIdCart()
{
$query = $this->getEntityManager()
->createQuery("select i.id from BoutiqueBundle:Panier i ORDER BY
i.id");
$query->setMaxResults(1);
return $query->getResult(); // will return an arraycollection with only one element
}
希望这能澄清
我需要从我的 table 中获取最后一个 ID,以便我可以在另一个函数中使用它 我在我的存储库中创建了这个函数,但我没有工作,它显示了一个错误:
[Syntax Error] line 0, col 60: Error: Expected end of string, got 'LIMIT'
我正在使用的功能:
public function LastIdCart()
{
$query = $this->getEntityManager()
->createQuery("select i.id from BoutiqueBundle:Panier i ORDER BY
i.id DESC LIMIT 1");
return $query->getResult();
}
class YourController extends Controller {
*********************************************************
public function yourAction( *** ) {
$youLastRecord = $this->getDoctrine()->getRepository(YourEntity::class)->findOneBy(
array(),
array('id' => 'DESC')
);
}
}
将 OFFSET
and/or LIMIT
与 DQL Query
一起使用的正确方法是在 $query
对象上使用以下 api 作为关注:
Query::setMaxResults($maxResults)
Query::setFirstResult($offset)
如文档中所述First and Max Result Items (DQL Query Only)
例如,您的代码应如下所示:
public function LastIdCart()
{
$query = $this->getEntityManager()
->createQuery("select i.id from BoutiqueBundle:Panier i ORDER BY
i.id");
$query->setMaxResults(1);
return $query->getResult(); // will return an arraycollection with only one element
}
希望这能澄清