MasterGerold
@MasterGerold

Как перехватить данные перед добавление в базу данных yii2?

Доброго времени суток! Подскажите как можно перехватить данные и обработать их перед отправкой в базу данных. К примеру у меня есть парочка чекбоксов, их значения это id юзеров и я хочу что бы значения перехватывались после каждого id добавлялась точка с запятой, а потому что бы эти данных летели в базу. Заранее благодарен за ответы!
  • Вопрос задан
  • 206 просмотров
Решения вопроса 2
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Можно использовать beforeSave(), в этом методе обработать Ваши checkbox и потом записать в базу.
При помощи implode() соберёте строку.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
public function beforeSave($insert)
{
    if (parent::beforeSave($insert)) {
        //тут ваш код, например
       //$this->realtor_id = yii\helpers\Json::encode($this->realtor_id);
        return true;
    } else {
        return false;
    }
}

ну и что бы потом опять иметь массив
public function afterFind()
    {
        $this->realtor_id = yii\helpers\Json::decode($this->realtor_id);
    }


Json самый удобный способ хранить массивы в одной ячейке. Хотя есть еще implode и serialize. Но в случае повреждения структуры, найти концы и ручками поправить проще именно json, да и просто он более наглядный.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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