假设我有两个名字 我该如何使用多值? 像:
[
'label' => 'Name',
'value' => 'messageTrigger.object_name'.'messageTrigger.object_name2',
]
给我一个错误的获取未知属性messageTrigger.object_name2
this是参考链接。
我必须对此做一些修改,但它给了我错误 希望有人帮助我这个
解决方案:
[
'label' => 'Name',
'value' => function ($data)
{$data->messageTrigger.object_name.$data->messageTrigger.object_name2}
]
答案 0 :(得分:1)
使用闭包:
'value' => function ($model) {
/* @var $model YourModel */
return $model->messageTrigger->object_name . $model->messageTrigger->object_name2;
},
最好将它包装在模型中的单独方法中,例如:
namespace app\models;
use yii\db\ActiveRecord;
class MessageTrigger extends ActiveRecord
{
public function getFullObjectName()
{
return $this->object_name . $this->object_name2;
}
}
然后你可以这样称呼它并且不关心内部实现:
'value' => function ($model) {
/* @var $model YourModel */
return $model->messageTrigger->getFullObjectName();
},
或者通过getter使用快捷方式:
'value' => 'messageTrigger.fullObjectName',
P.S。确保每个显示的模型都存在messageTrigger
相关模型,否则添加检查是否存在。