Griff19
@Griff19
программист, поэт, музыкант :)

Yii2 AttributeBehavior записать значения в несколько атрибутов?

Привет, помогите разобраться.
Из документации:
use yii\behaviors\AttributeBehavior;

public function behaviors()
{
    return [
        [
            'class' => AttributeBehavior::className(),
            'attributes' => [
                ActiveRecord::EVENT_BEFORE_INSERT => 'attribute1',
                ActiveRecord::EVENT_BEFORE_UPDATE => 'attribute2',
            ],
            'value' => function ($event) {
                return 'some value';
            },
        ],
    ];
}

тут в общем я понял что значение присваивается тому или иному атрибуту в зависимости от событий.
Из той же документации узнаю что можно атрибуты записывать в массив:
[
    ActiveRecord::EVENT_BEFORE_INSERT => ['attribute1', 'attribute2'],
    ActiveRecord::EVENT_BEFORE_UPDATE => 'attribute2',
]

и тут становится не понятно. При INSERT в attribute1 и attribute2 запишутся одинаковые значения из 'value'? Или их как-нибудь можно разделить и в каждый атрибут записать разные значения?
  • Вопрос задан
  • 660 просмотров
Решения вопроса 1
@Arik
Можно например так в замыкании:
if($event->name == ActiveRecord::EVENT_BEFORE_UPDATE) {
// вернуть значение для update
} else {
// вернуть значение при insert
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы