从Symfony2中的表单选定项创建存储库操作?

时间:2014-03-06 10:59:31

标签: symfony doctrine-orm

编辑我找到了如何获取数据

    $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();

}

我希望我能理解,如果不是毫不犹豫地向我询问更多信息。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您没有指定关联类型,但它应该类似于:

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();