Symfony2 notIn不起作用

戴尼斯

我正在尝试使用带有notIn子句的query_builder。但这不起作用,我有此错误消息:

Call to a member function expr() on a non-object in C:\wamp\www\projet\src\Intranet\UserBundle\Entity\UserRepository.php line 301

这是方法:

    public function employesSansCongesAllouesEn($annee) {
    $nots = $this->createQueryBuilder('u') // récupérer les employés qui ont déjà des congés définis
            ->select('u.id')
            ->Join('\Intranet\CalendrierBundle\Entity\UserCongeByYear', 'uc', "WITH", "uc.user = u.id ") // jointure UserCongeByYear
            ->andWhere('u.enabled = 1 ')
            ->andWhere('uc.annee = :annee ') // condition d'année
            ->getDQL()
    ;
    $qb = $this->createQueryBuilder('user') // récupérer les employés qui n'ont pas encore de congé pour l'année choisie
            ->andWhere('user.enabled = 1')
            ->distinct('user')
            ->andWhere($qb->expr()->notIn('user.id', $nots)) // condition NOT IN
            ->setParameter(':annee', $annee)
            ->orderBy('user.nom', 'ASC')
    ;
    return $qb;
}

以及使用此查询的表单:

    public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder
            ->add('users', 'entity', array(
                'label' => "Employés : ",
                'class' => 'IntranetUserBundle:User',
                'multiple' => false,
                'required' => true,
                'attr' => array('class' => 'form-control'),
                'query_builder' => function(UserRepository $er) use($options) {
            return $er->employesSansCongesAllouesEn($options['annee']);
        }
            ))
            ->add('heures', 'integer', array(
                'label' => "Nombre d'heures attribuées : ",
                'attr' => array('class' => 'form-control', 'min' => 1, 'max' => '250')
            ))
    ;
}
Qooplmao

$qb在声明之前使用

您应该先声明它,然后再在查询构建过程中使用它,例如。

$qb = $this->createQueryBuilder();

// récupérer les employés qui ont déjà des congés définis
$nots = $qb
    ->select('u.id')
    ->Join(
        '\Intranet\CalendrierBundle\Entity\UserCongeByYear', 
        'uc', 
        "WITH", 
        "uc.user = u.id "
    ) // jointure UserCongeByYear
    ->andWhere('u.enabled = 1 ')
    ->andWhere('uc.annee = :annee ') // condition d'année
    ->getDQL()
;

// récupérer les employés qui n'ont pas encore de congé pour l'année choisie
return $qb
    ->where('user.enabled = 1')
    ->distinct('user')
    ->andWhere($qb->expr()->notIn('user.id', $nots)) // condition NOT IN
    ->setParameter(':annee', $annee)
    ->orderBy('user.nom', 'ASC')
;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony2 Asset GreaterThan不起作用

来自分类Dev

DATEDIFF在Symfony2中不起作用

来自分类Dev

symfony2不起作用全新安装

来自分类Dev

翻译在Symfony2中不起作用

来自分类Dev

symfony2(主义)货币约束不起作用

来自分类Dev

Symfony2实体克隆不起作用

来自分类Dev

Symfony2 postUpdate侦听器不起作用

来自分类Dev

在类上的Symfony2 Route注释不起作用

来自分类Dev

Symfony2 FOSRestBundle handleView()不起作用

来自分类Dev

getDoctrine()在FOSUserBundle symfony2中不起作用

来自分类Dev

Symfony2实体克隆不起作用

来自分类Dev

Symfony2动态路由器不起作用

来自分类Dev

Symfony2 MobileDetectBundle重定向不起作用

来自分类Dev

Symfony2表格被点击不起作用

来自分类Dev

Symfony2:多个上传文件不起作用

来自分类Dev

Symfony2学说ORM级联分离不起作用

来自分类Dev

不相等的条件不起作用Symfony2

来自分类Dev

Symfony2中的搜索功能不起作用

来自分类Dev

Symfony2学说NotIn问题

来自分类Dev

Symfony2,Doctrine2,findBy()命令不起作用

来自分类Dev

Symfony2:使用控制器即服务进行路由不起作用

来自分类Dev

登录Symfony2后,成功处理程序不起作用

来自分类Dev

Symfony2会话闪存与树枝中的if子句不起作用

来自分类Dev

Symfony2自定义安全投票器不起作用

来自分类Dev

Symfony2表单构建器实体(未映射)设置值(数据)不起作用

来自分类Dev

Symfony2 UniqueEntity不起作用:抛出数据库异常

来自分类Dev

SYMFONY2:带有StreamedResponse的csv导出不起作用

来自分类Dev

symfony2和phpunit在Lampp上不起作用(ubuntu 15.x)

来自分类Dev

Symfony2验证消息翻译。后备选项不起作用

Related 相关文章

热门标签

归档