Reputation: 303
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..!
Upvotes: 0
Views: 103
Reputation: 303
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 thedata
array variable.
Upvotes: 1