yii2:Gridview中相关模型的数据

时间:2015-01-02 10:28:40

标签: php gridview yii2

我有两个模型,即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

现在我需要一些帮助,我在这里做错了什么。 谢谢。

1 个答案:

答案 0 :(得分:3)

您应该使用回调函数,请参阅the guide

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

或者对于数组的第一个结果:

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