dsa4d4789789 2017-01-24 10:47
浏览 46
已采纳

如何在ZF2中设置MySQL数据库表的特定属性的条件?

This is the code, and i want to set condition on obtainedMarks. The condition will check if the obtainedMarks have a value assigned or not.

 $qb->select(array(
       "academic.studentAcademicId as studentAcademicId",
       "academic.descriptions as descriptions",
       "student.name as studentName",
       "student.studentId as studentId",
       "class.name as className",
       "session.name as sessionName",
       ***"SUM(marks.marksObtained) as marksObtained",***
    ))
        ->from('Application\Entity\StudentAcademics','academic')
        ->leftJoin('academic.class','class')
        ->leftJoin('academic.marks','marks')
        ->leftJoin('academic.student','student')
        ->leftJoin('academic.session','session')
        ->where('academic.student = :student')
        ->setParameter('student',$studentId)->groupBy('studentAcademicId');

So how to put such a condition that checks out if obtainedMarks carry a value or not..!

  • 写回答

1条回答 默认 最新

  • dqrfdl5708 2017-01-26 10:26
    关注

    In Zendframework2, all query data is assigned to an array variable e.g $data

     $data = $qb->getQuery()->getScalarResult();
    

    and is returned to whoever call this controller i.e,

    return new ViewModel(array(
                    'data' => $data,
                )
    

    To check if a specific attribute in a query bears a value or not is to check it through foreach loop in the view that called this controller e.g

    <?php foreach ($this->data as $item): ?>
    <tr>
        <td>
            <?php if(isset( $item['marksObtained']) &&  $item['marksObtained'] > 0){?>
                <a href="<?=$this->url( 'marks/details', array('action'=>'index', 'id'=>$item['studentAcademicId']))?>">
                    <?php echo $item['marksObtained']; ?></a>
            <?php }else{ ?>
                <a href="<?=$this->url( 'marks/details', array('action'=>'add', 'id'=>$item['studentAcademicId']))?>">
                    Add Marks</a>
            <?php }?>
        </td>
    </tr>
    

    As seen, the if condition is checking out the obtainedMarks value from the data array variable.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条