>编辑 我找到了如何获取数据
$filter_form->handleRequest($request);
if ($filter_form->isValid()) {
$users = $filter_form->get('users')->getViewData();
$tags = $filter_form->get('tags')->getData();
$links = $em->getRepository('LanCrmBundle:Link')->findFiltered($users, $tags);
} else {
$links = $em->getRepository('LanCrmBundle:Link')->findBy(
array(),
array('id' => 'desc')
);
}
现在我必须在我的存储库中创建 findFiltered 方法。
但我不知道如何让它工作。
public function findFiltered($users, $tags)
{
$queryBuilder = $this->createQueryBuilder('l');
$queryBuilder->orderBy('l.id', 'desc');
if($users) {
???
}
if($tags) {
???
}
return $queryBuilder->getQuery()->getResult();
}
我希望我是可以理解的,如果不是,请毫不犹豫地问我更多信息。
提前谢谢你。
您没有指定关联类型,但它应该是这样的:
return $this->_em
->createQuery(
'SELECT l FROM LanCrmBundle:Link '.
'WHERE l.user IN (:users) AND l.tag IN (:tags) '.
'ORDER BY l.id DESC')
->setParameter('users', $users)
->setParameter('tags', $tags)
->getResult();