1

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}
   ]
Community
  • 1
  • 1
Santosh
  • 393
  • 2
  • 11

1 Answers1

1

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.

arogachev
  • 31,868
  • 6
  • 105
  • 113