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'
],

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

Получение неизвестного свойства: app \ models \ MedicineRequestEntry :: $ data-> MedicineRequests-> is_delivered

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

3

Решение

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

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

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]