我有这个DetailView
,它是从动态表格形式获得的:
我有两个用于创建表格形式的模型类:
型号:课程注册
public function attributeLabels()
{
return [
'id' => Yii::t('course', 'ID'),
'state_office_id' => Yii::t('course', 'State Office'),
'study_centre_id' => Yii::t('course', 'Study Centre'),
'programme_id' => Yii::t('course', 'Programme'),
'department_id' => Yii::t('course', 'Department'),
'academic_level_id' => Yii::t('course', 'Academic Level'),
'student_id' => Yii::t('course', 'Student'),
'academic_year_id' => Yii::t('course', 'Academic Year'),
'academic_semester_id' => Yii::t('course', 'Academic Semester'),
];
}
public function getCourseRegistrationDetail()
{
return $this->hasMany(\app\modules\course\models\CourseRegistrationDetail::className(), ['course_registration_id' => 'id']);
}
型号:courseRegistrationDetail
public function attributeLabels()
{
return [
'id' => Yii::t('course', 'ID'),
'course_registration_id' => Yii::t('course', 'Course Registration'),
'course_id' => Yii::t('course', 'Course Title'),
'student_id' => Yii::t('course', 'Student'),
'remark' => Yii::t('course', 'Remark'),
];
}
public function getCourseMasters()
{
return $this->hasOne(CourseMaster::className(), ['id' => 'course_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getCourseRegistration()
{
return $this->hasOne(\app\models\CourseRegistration::className(), ['id' => 'course_registration_id']);
}
控制器
public function actionView($id)
{
$model = $this->findModel($id);
$courseregistrationdetails = $model->courseRegistrationDetail;
return $this->render('view', [
'model' => $model,
'courseregistrationdetails' => $courseregistrationdetails,
]);
}
查看
<div class="col-xs-12">
<div class="box box-primary view-item">
<div class="courses-view">
<?= DetailView::widget([
'model' => $model,
'options'=>['class'=>'table detail-view'],
'attributes' => [
'registrationStudent.registration_no',
'registrationStateOffice.state_name',
'registrationStudyCentre.study_centre_name',
'registrationProgramme.programme_name',
'registrationDepartment.department_name',
'registrationAcademicLevel.academic_level_name',
'registrationYear.academic_year_name',
'registrationSemester.semester_name',
],
]) ?>
</div>
<div class="box box-success">
<div class="box-header" id="callout-input-needs-type">
<h4 class="box-title"><?php echo Yii::t('course', 'Course-Registration Details'); ?></h4>
</div>
<div class="box-body table-responsive"></div>
<table class="receipt-details table">
<tr>
<th>ID</th>
<th>Course Code</th>
<th>Course Title</th>
<th>Course Type</th>
<th>Unit</th>
<th>Remark</th>
</tr>
<?php foreach($model->courseRegistrationDetails as $courseRegistrationDetail) :?>
<tr>
<td><?= $courseRegistrationDetail->id ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseCodes ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseTitles ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseTypes ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseUnits ?></td>
<td><?= $courseRegistrationDetail->remark ?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
</div>
</div>
</div>
我想对DetailView
中的单位求和,但是不知道该怎么做。请参阅下面我要实现的内容:
我该如何实现?
答案 0 :(得分:0)
您可以仅在foreach内部计数并在foreach之后显示结果:
<?php $count = 0 ?>
<?php foreach($model->courseRegistrationDetails as $courseRegistrationDetail): ?>
<tr>
<td><?= $courseRegistrationDetail->id ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseCodes ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseTitles ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseTypes ?></td>
<td><?= $courseRegistrationDetail->courseMasters->courseUnits ?></td>
<td><?= $courseRegistrationDetail->remark ?></td>
<?php $count += $courseRegistrationDetail->courseMasters->courseUnits ?>
</tr>
<?php endforeach; ?>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
<td>Total Unit</td>
<td><?= $count ?></td>
<td></td>
</tr>
</tfoot>