При регистрации пользователя хочу записывать доп инфу в отдельную таблицу. Насколько я понял, нужно создать доп модель со своей таблицей, и подключить это к уже имеющимся контроллеру и вьюшке. Если я правильно понял yii, то сначала подключается модель к контроллеру
Код: Выделить всё
use frontend\models\Profile;
...
...
public function actionSignup()
{
$model = new SignupForm();
$kis= new Profile();
if ($model->load(Yii::$app->request->post())) {
if ($user = $model->signup()) {
if (Yii::$app->getUser()->login($user)) {
return $this->goHome();
}
}
}
return $this->render('signup', [
'model' => $model, 'kis' =>$kis,
]);
}
Код: Выделить всё
<?php
$form = ActiveForm::begin(['id' => 'form-signup']);
$kis= new Profile();
?>
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'email') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<?= $form->field($kis, 'name') ?>
<div class="form-group">
<?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
</div>
<?php ActiveForm::end(); ?>
Код: Выделить всё
<?php
namespace frontend\models;
use Yii;
use yii\db\ActiveRecord;
class Profile extends ActiveRecord
{
public static function tableName()
{
return 'profile';
}
public function rules()
{
return [
[['name', 'city'], 'required'],
[['name', 'city'], 'string', 'max' => 32]
];
}
public function attributeLabels()
{
return [
'user_id' => 'User ID',
'name' => 'Name',
'city' => 'City',
];
}
public function signUp()
{
if($this->validate()) {
$kis = new Profile();
$kis->name = $this->name;
$kis->city = $this->city;
$kis->save();
}
return null;
}
}