Yii2-如何在DetailView中查找总和

Yii2-如何在DetailView中查找总和,yii2,Yii2,我有一个DetailView,它是从动态表格中获得的: 我有两个用于创建表格形式的模型类: 模式:课程注册 public function attributeLabels() { return [ 'id' => Yii::t('course', 'ID'), 'state_office_id' => Yii::t('course', 'State Office'), 'study_centre_id' => Yii::

我有一个
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
中对单位求和,但不知道怎么做。请看我想实现以下目标:


如何实现这一点?

您只需在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>

总单位