我正在尝试从网格中的另一个模型显示字段,但我无法使其正常工作。
我有两张桌子:客户和出席,我只需要为每位客户带来今天的出席情况。
从出席情况来看,我正在努力获得实地考勤。医生
在网格中我试图获得一个功能但是没有工作。
$gridColumns = [
[
'label' => 'Doctor',
'value' => function ($model, $index, $dataColumn) {
return $model->attendance->doctor;
},
],
...
];
答案 0 :(得分:0)
“价值”的关闭是:
function($model, $key, $index, $widget) {
return $model->attendance->doctor->name;
}
或者你可以这样做:
"value" => "attendance.doctor.name"
Doc:http://www.yiiframework.com/doc-2.0/guide-output-data-widgets.html#column-classes
答案 1 :(得分:0)
花了我几个小时,但我发现这可能不是最好的方式,但有效。
在视图中我使用的是kartik网格,但与默认网格的工作方式相同。
我想从考勤表(Dropin,Doctor和Lawyer)获得3个字段。
[
'class' => 'kartik\grid\BooleanColumn',
'vAlign' => 'middle',
'label' => 'Dropin',
'value' => function($model, $index, $dataColumn) {
return $model->getAttendances('Dropin');
},
],
[
'class' => 'kartik\grid\BooleanColumn',
'vAlign' => 'middle',
'label' => 'Doctor',
'value' => function($model, $index, $dataColumn) {
return $model->getAttendances('Doctor');
},
],
[
'class' => 'kartik\grid\BooleanColumn',
'vAlign' => 'middle',
'label' => 'Lawyer',
'value' => function($model, $index, $dataColumn) {
return $model->getAttendances('Lawyer');
},
],
getAttendences函数在当前模型(Customers)中定义
public function getAttendances($field_to_search)
{
$model = Attendance::find()->where(['CustomersID'=>$this->ID])->one();
if (! empty($model)) {
//design my GridView
$value = $model->$field_to_search;
}
else
{
$value = 0;
}
return $value;
}
我正在发布项目:
https://github.com/open-ecommerce/oe-dropin
如果你想看看更好的帮助......
(这是一个免费的简单项目,我正在帮助慈善机构开发)