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.

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

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试