【问题标题】:How i can convert the following SQL Query to Doctrine我如何将以下 SQL 查询转换为 Doctrine
【发布时间】:2016-11-02 10:23:01
【问题描述】:

如何将以下 SQL 查询转换为 Doctrine?

select * from `Leave_types` 
where (leave_name = in_leave_name or leave_code=in_leave_code) 
and academic_year_id =in_academic_year_id

我尝试以下代码:

    $em = $this->doctrine->em;
    $qb = $em->createQueryBuilder();
    $qb->select('lt');
    $qb->from('Entity\LeaveTypes', 'lt');
    $qb->innerjoin('lt.academicYear', 'ay');
    $qb->where('ay.academicId = :academicId');
    $qb->andwhere(
        $qb->orWhere('leaveName', '?1'),
        $qb->orWhere('leaveCode', '?2')
    );
    $qb->setParameter('academicId', $add_data['academic_year_id']);
    $qb->setParameter(1, $add_data['leave_name']);
    $qb->setParameter(2, $add_data['leave_code']);
    $result = $qb->getQuery()->getResult();

【问题讨论】:

  • in_leave_name,in_leave_codein_academic_year_id。它们是什么?
  • 这些是生产者发送的参数
  • 那么你当前的代码有什么问题?
  • 我怎样才能在教义中写出真实的情况

标签: php codeigniter doctrine-orm doctrine


【解决方案1】:

谢谢大家, 我使用

解决了这个问题
 $qb->where('ay.academicId = :academicId');
 $qb->andWhere('lt.leaveName = :leaveName OR lt.leaveCode = :leaveCode');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2015-02-01
    • 2022-07-29
    • 1970-01-01
    相关资源
    最近更新 更多