коде с Yii2:данные из связанной модели в GridView в


У меня есть две модели, а именно MedicineRequestEntry и MedicineRequest. MedicineRequestEntry связан с MedicineRequest через

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

Теперь в сеточном представлении MedicineReuestEntry я пытаюсь извлечь данные из модели MedicineRequest, используя отношение, используя два альтернативных способа

Как

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

В этом методе я получаю значение как не заданное. и еще один метод:

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

В этом методе я получаю ошибку типа:

Становится неизвестным свойство: appmodelsMedicineRequestEntry::$data - >medicineRequests - >is_delivered

Теперь мне нужна помощь, что я здесь делаю не так. Спасибо.
1 3

1 ответ:

Вы должны использовать функцию обратного вызова, см. руководство:

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

Или для первого результата массива:

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