Есть форма, с нее должны отправляться данные в базу.
View:
<?php $form = ActiveForm::begin();
?>
<?= $form->field($registrationModel, 'login'); ?>
<?= $form->field($registrationModel, 'password')->passwordInput(); ?>
<?= $form->field($registrationModel, 'role')->dropDownList(['manager' => 'Менеджер', 'user' => 'Исполнитель']); ?>
<div class="form-group">
<div class="">
<?= Html::submitButton('Создать', ['class' => 'btn btn-primary']); ?>
</div>
</div>
<?php ActiveForm::end(); ?>
Model:
<?php
namespace app\models;
use yii\db\ActiveRecord;
class RegistrationModel extends ActiveRecord
{
public $login;
public $password;
public $role;
public static function tableName()
{
return 'users';
}
public function rules()
{
return [
// username and password are both required
[['login', 'password', 'role'], 'required'],
];
}
public function attributeLabels()
{
return [
'login' => 'Логин',
'password' => 'Пароль',
'role' => 'Роль пользователя',
];
}
public function createAccount()
{
$postData = $_POST['RegistrationModel'];
$this->login = $postData['login'];
$this->password = $postData['password'];
$this->role = $postData['role'];
$this->save();
}
}
Controller:
<?php
namespace app\controllers;
use app\models\RegistrationModel;
use yii\web\Controller;
use Yii;
class RegistrationController extends Controller
{
public function actionView()
{
$registrationModel = new RegistrationModel();
if( $registrationModel->load( Yii::$app->request->post() ) && $registrationModel->createAccount() ){
Yii::$app->session->getFlash('successRegistration', 'Пользователь успешно создан');
}
return $this->render('view', compact(['registrationModel', 'postData']));
}
}
Я уже пробовал записывать просто строки вместо $_POST, все равно в базу записывается только дефолтное значение select`а