Задать вопрос
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'? Или их как-нибудь можно разделить и в каждый атрибут записать разные значения?
  • Вопрос задан
  • 670 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Решения вопроса 1
@Arik
Можно например так в замыкании:
if($event->name == ActiveRecord::EVENT_BEFORE_UPDATE) {
// вернуть значение для update
} else {
// вернуть значение при insert
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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