Tbgridview Value Из Другой Таблицы.

Хочу вывести сумму, студента, который сделал оплату, в просмотре студента?

Поле f_student_id в таблице ge_pay имеет вшений ключ к таблице ge_students

Связь таблиц

4278

1.png

Модель Students.php




public function relations()

    {

        // NOTE: you may need to adjust the relation name and the related

        // class name for the relations automatically generated below.

        return array(

            'fPays' => array(self::HAS_MANY, 'Pay', 'pay_id'),

        );

    }



View.php





         <div class="tab-pane" id="tab-finance">

     <legend>Финансы</legend>

  <?php $this->widget('bootstrap.widgets.TbGridView',array(

    'dataProvider'=>$model->search(),

        'type'=>'striped bordered condensed',

        'template'=>'{summary}{pager}{items}{pager}',

        'filter'=>$model,

    'columns'=>array(

        array(

                //курс

                'name'  => 'f_course_id',

                'value' => '$data->fPays->course_name' ,

                'filter' => '',

                        ),

               //сумма

                array(

                'name'  => 'sum',

                'value' => '$data->fPays->sum',

                'filter' => '',

                        ),        

    ),

)); ?>

    </div>

        



Вывод

4279

2.png

Решение:




         <div class="tab-pane" id="tab-finance">

     <legend>Финансы</legend>

  <?php 

$dataProvider=new CActiveDataProvider('Pay',array(

                   'criteria'=>array(

                    'condition'=>'f_student_id=:comp_id',

                       'params'=>array(':comp_id'=>$model->students_id),

                   )));

  $this->widget('bootstrap.widgets.TbGridView',array(


    'dataProvider'=>$dataProvider,

        'type'=>'striped bordered condensed',

        'template'=>'{summary}{pager}{items}{pager}',

        //'filter'=>$model,

    'columns'=>array(

        array(

            'name'  => 'date_pay',

            'value' => 'Yii::app()->getDateFormatter()->formatDateTime($data->date_pay, "short", "short")',

        ),

        array(

                         'name'   => 'f_course_id',

                         'value'  => '$data->fCourse->course_name',

  

        'filter' => Course::courseList(),

                        ),

                array(

                         'name'   => 'f_student_id',

                         'value'  => '$data->fStudent->fullname',

  

        'filter' => Students::studentsList(),

                        ),

        'sum',

               array(

                'name'  => 'payment_status',

                'value' => '$data->StatusPaid',

                ),

                array(

                'name'  => 'payer_type',

                'value' => '$data->StatusPayerType',

                ),           

                 array(

            'class'=>'bootstrap.widgets.TbButtonColumn',

            'template' => '{view} {update} ',

            'buttons' => array(

                  'view' => array(

                    'label'=> Yii::t('tbmenu', 'View'),

                                        'url'=>'Yii::app()->createUrl("pay/view", array("id"=>$data->primaryKey))',

                    'options'=>array(

                        'class'=>'btn btn-small view'

                    )

                ),    

                              'update' => array(

                    'label'=> Yii::t('tbmenu', 'Update'),

                                        'url'=>'Yii::app()->createUrl("pay/update", array("id"=>$data->primaryKey))',

                    'options'=>array(

                        'class'=>'btn btn-small update'

                    )

                ),

                /*'pay/delete' => array(

                    'label'=> Yii::t('tbmenu', 'Delete'),

                    'options'=>array(

                        'class'=>'btn btn-small delete'

                    )

                                

                )

                                 * 

                                 */

            ),

            'htmlOptions'=>array('style'=>'width: 115px'),

           )

    ),

)); ?>

            


    </div>