коде с 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 ответ:
Вы должны использовать функцию обратного вызова, см. руководство:
[ 'value' => function ($data) { $str = ''; foreach($data->medicineRequests as $request) { $str .= $request->is_delivered.','; } return $str; }, ],
Или для первого результата массива:
[ 'value' => function ($data) { return $data->medicineRequests[0]->is_delivered; }, ],