我对如何使用查询和已经存在的控制器(带KnpPaginator它)简单的过滤器
我有我的回购查询创建过滤器造成混淆,但通过一些东西搜索,并在我的控制器两个函数private
叫resultsAction
和public
一个叫offreAction
都在一起。
关于如何创建一个简单的过滤器的任何想法?我跟着这个tutorial但我的查询已经存在于我的回购中,并且在我应用它时不起作用。
我的回购
public function getQueryByTypeAndPro($type, User $user, $archive)
{
return $this->createQueryBuilder("opn")
->andWhere("opn.type = :type")
->setParameter("type", $type)
->andWhere("opn.resellerId = :reseller")
->setParameter("reseller", $user->getId())
->andWhere("opn.archive = :archive")
->setParameter('archive', $archive)
->orderBy("opn.dateCreation", "DESC")
->getQuery()
;
}
我控制器
private function resultsAction(Request $request, User $user, $type, $archive)
{
$em = $this->getDoctrine()->getManager();
$paginator = $this->get('knp_paginator');
$qb = $em->getRepository("STUserBundle:Operation")->getQueryByTypeAndPro($type, $user, $archive);
$results = $paginator->paginate(
$qb,
$request->query->get('page',1),
$request->query->get('limit',50),
[
'defaultSortFieldName' => 'opn.dateCreation',
'defaultSortDirection' => 'desc'
]
);
return array("results" => $results, "archive" => $archive);
}
public function offreAction(Request $request, User $user, $archive = false)
{
return $this->resultsAction($request, $user, Operation::OFFRE_COMMERCIALE, $archive);
}
我应该为了使这项工作创造我的控制器中的新功能(公共)?或者我可以直接在结果行动KnpPaginator是什么?
谢谢
你好,感谢你的帮助。但它不起作用。 findBy(array('type'=> type,'resellerId'=> resellerId,'archive'=> archive),array('dateCreation'=> DESC))'show type,resellerId并将其归档为'undefined constant'真的不知道我该怎么办 –
未定义的常量意味着你没有初始化你的变量。请初始化你的变量,然后它肯定会工作。 只是为了调试变量的硬编码值。 –
如果我的控制器和查询和参数已经存在,我可以在哪里以及如何初始化它们? :/我有点新的编码我不明白在控制器中的所有 –