Порядок действий такой должен быть в форме делаете функцию. Можете присвоить значения свои ручками, но закидывать админа и тест луче через миграции.
public function signup()
{
if ($this->validate()) {
$user = new User();
$user->username = $this->username;
$user->email = $this->email;
$user->setPassword($this->password);
$user->generateAuthKey();
if ($user->save()) {
// тут можно закинуть отправку токена на мыло
}
return $user; // это отправка будет на ваш экшн
}
return null;
}
в контроллере
public function actionSignup()
{
$model = new SignupForm(); // создается форма что выше
if ($model->load(Yii::$app->request->post())) { // грузит модель из суперглобалки ПОСТ
if ($user = $model->signup()) { // создается юзер используется функция из формы
Yii::$app->getSession()->setFlash('success', 'Регистрация успешна'); // всплывающее сообщение
return $this->goHome(); //возврат на домашку
}
}
return $this->render('signup', [
'model' => $model,
]);
}
А функция model->save(); Зажмите в вашем IDE контрл и кликните по функции сэйв, посмотрите как он устроен. Это обыкновенная вставка INSERT.
В Юзерах вы создаете массив данных, а не объект. Как минимум в юзере нужно функцию, которая этот массив передавала бы вам. и в контроллере вы бы использовали что-то вроде
$model = New User();
$model->username = $arrayUser['100']['username']
$model->email = $arrayUser['100']['email']
$model->setPassword($arrayUser['100']['password']);
$model->save();