Pawan
Pawan

Reputation: 3864

yii2:data of related model in Gridview

I have two models namely MedicineRequestEntry and MedicineRequest. MedicineRequestEntry is related to MedicineRequest via

public function getMedicineRequests()
    {
        return $this->hasMany(MedicineRequest::className(), 
['medicine_request_entry_id' => 'id']);
    } 

Now in grid-view of MedicineReuestEntry I am trying to pull the data from MedicineRequest Model using the relation using two alternative ways

like

[
           'attribute' => 'is_delivered',
            'value'=> 'medicineRequests.is_delivered'
        ],

In this method I am getting the value as not set. and another method:

[
               'attribute' => 'is_delivered',
               'value'=> '$data->medicineRequests->is_delivered'
            ],

In this method I am getting the error like:

Getting unknown property: app\models\MedicineRequestEntry::$data->medicineRequests->is_delivered

Now I need some help, what I am doing wrong here. Thank you.

Upvotes: 4

Views: 4047

Answers (1)

deacs
deacs

Reputation: 4319

You should use a callback function, see the guide:

[
    'value' => function ($data) {
        $str = '';
        foreach($data->medicineRequests as $request) {
            $str .= $request->is_delivered.',';
        }
        return $str;
    },
],

Or for the first result of the array:

[
    'value' => function ($data) {
        return $data->medicineRequests[0]->is_delivered;
    },
],

Upvotes: 3

Related Questions