Reputation: 381
Suppose I have two name then How can I use the multiple value ? like:
[
'label' => 'Name',
'value' => 'messageTrigger.object_name'.'messageTrigger.object_name2',
]
It is giving me error for Getting unknown property messageTrigger.object_name2
this is reference link.
I have to do some modification on that but it giving me error hope some one help me out for this
Solution:
[
'label' => 'Name',
'value' => function ($data)
{$data->messageTrigger.object_name.$data->messageTrigger.object_name2}
]
Upvotes: 1
Views: 422
Reputation: 33548
Use a closure:
'value' => function ($model) {
/* @var $model YourModel */
return $model->messageTrigger->object_name . $model->messageTrigger->object_name2;
},
It's better to wrap it in separate method in model, for example:
namespace app\models;
use yii\db\ActiveRecord;
class MessageTrigger extends ActiveRecord
{
public function getFullObjectName()
{
return $this->object_name . $this->object_name2;
}
}
Then you can call it like this and don't care about internal implementation:
'value' => function ($model) {
/* @var $model YourModel */
return $model->messageTrigger->getFullObjectName();
},
Or use a shortcut via getter:
'value' => 'messageTrigger.fullObjectName',
P.S. Make sure messageTrigger
related model exists for every displayed model, otherwise add check for existence.
Upvotes: 1