Всем привет! Как можно заменить подобные использования и вынести их из контроллера в модель?
....
public function actionCreate()
{
$event_id = Registration::getEventId();//Обращение к модулю. В нем получаем event_id
$model = new RegBattle(['event_id'=>$event_id])
///другое...
}
....
public function actionCreate()
....
public function actionCreate($event_id)
{
$model = new RegBattle(['event_id'=>$event_id]) //event_id получаем из get запроса
///другое...
}
....
Пробовал делать нечто подобное:
/**
* Инициализация модели
*/
public function init()
{
parent::init();
if ($this->isNewRecord){
$this->event_id = Registration::getEventId();
$this->number = self::setNumber();
}
}
Но код выше инициализируется всегда когда подключают модель, а нужно только перед созданием записи, но не перед сохранением! То есть чтобы
$this->number = self::setNumber();
ещё автоматически инициализировал в поле input значение с последним номером
/**
* Добавить номер
* @return mixed
*/
public static function setNumber()
{
$event_id = Registration::getEventId();
return self::find()->where(['event_id' => $event_id])->max('number') + 1;
}