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



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

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

相关内容

  • 没有找到相关文章