2015-08-17 2 views
0

У меня есть форма с двумя полями ввода, такими как имя, идентификатор пользователя, а столбцы таблицы - id (автоинкремент, имя, идентификатор пользователя). Если я сохраню запись, значение автоматического увеличения id будет сохранено в столбце userid. Я использовал триггер для этого, но это не подходит, потому что я использую более 10 таблиц. Поэтому мне нужно написать триггер для всей таблицы.как установить значение автоинкремента для другого столбца в таблице в модели yii2

Так что предлагайте мне, как это сделать в модели yii2 без триггера записи.

ответ

0

Если вы хотите иметь пользовательское поле автоинкремента. Вы можете переопределить функцию beforeSave в своей модели.

/** 
* @inheritdoc 
*/ 
public function beforeSave($insert) 
{ 
    if (parent::beforeSave($insert)) { 
     if(!$this->id) 
     { 
      $this->id = yourFunctionToCreateAutoincrementValue(); 
     } 
     return true; 
    } else { 
     return false; 
    } 
}