@ProFM

Как передать дату и время в БД при регистрации пользователя yii2?

Добрый вечер! Разобрался с регистрацией кое как, вроде все нормально заносится в БД, сейчас вопрос в другом, как передавать еще и время регистрации в БД?

Вот файлы:

models/Users.php
namespace app\models;

use Yii;
use yii\db\ActiveRecord;

class Users extends ActiveRecord
{

    /**
     * Подключаем таблицу БД
     */
    public static function tableName()
    {
        return 'users';
    }

    /**
     * Создаем правила для валидации
     */
    public function rules()
    {
        return [
            [['username', 'email', 'password'], 'required'],
            [['username', 'email', 'password'], 'filter', 'filter' => 'trim'],
            ['email', 'email'],
            ['username', 'string', 'min' => 6, 'max' => 30],
            ['password', 'required', 'on' => 'create'],
        ];
    }

    /**
     * Имена атрибутов в форме
     */
    public function attributeLabels()
    {
        return [
            'username' => 'Имя',
            'email' => 'E-mail',
            'password' => 'Пароль',
        ];
    }
}

models/RegForm.php
<?php

    namespace app\models;

    use yii\base\Model;
    use Yii;

    class RegForm extends Model
    {
        public $username;
        public $email;
        public $password;

        public function rules()
        {
            return [
                [['username', 'email', 'password'], 'filter', 'filter' => 'trim'],
                [['username', 'email', 'password'], 'required', 'message' => 'заполните все поля'],
                ['username', 'unique', 'targetClass' => Users::className(), 'message' => 'Это имя занято'],
                ['email', 'unique', 'targetClass' => Users::className(), 'message' => 'Эта почта уже зарегистрирована']
            ];
        }

        public function attributeLabels()
        {
            return [
                'username' => 'Логин',
                'email' => 'E_mail',
                'password' => 'Пароль'
            ];
        }

controllers/MainController.php
namespace app\controllers;


    use app\models\LoginForm;
    use app\models\RegForm;
    use app\models\Users;
    use yii\web\Controller;
    use yii;

    class MainController extends Controller
    {

        /**
         * Регистрация пользователей
         *
         * $model = new RegForm(); - Создаем объект класса модели
         *
         * ($model->load(\Yii::$app->request->post()) && $model->validate())
         * Проверка на валидность
         *
         * $user = new Users(); - Создаем объект класса модели
         */
        public function actionReg()
        {
            if (!Yii::$app->user->isGuest)
            {
                return $this->goHome();
            }
            $model = new RegForm();
            if($model->load(\Yii::$app->request->post()) && $model->validate())
            {
                $user = new Users();
                $user->username = $model->username;
                $user->email = $model->email;
                $user->password = \Yii::$app->security->generatePasswordHash($model->password);
                $user->save();
                if($user->save())
                {
                    return $this->goHome();
                }
            }
            return $this->render('reg', ['model' => $model]);
        }

        public function actionLogin()
        {
            $model = new LoginForm();
            if($model->load(yii::$app->request->post()) && $model->login())
            {
                return $this->goBack();
            }
            return $this->render('login', ['model' => $model]);
        }
    }

views/main/reg.php
use yii\helpers\Html;
    use yii\widgets\ActiveForm;

    /* @var $this yii\web\View */
    /* @var $model app\models\RegForm */
    /* @var $form ActiveForm */

$this->title = 'Регистрация';
$this->params['breadcrumbs'][] = $this->title;
    ?>
    <div class="main-reg">

        <?php $form = ActiveForm::begin(); ?>

            <?= $form->field($model, 'username') ?>
            <?= $form->field($model, 'email') ?>
            <?= $form->field($model, 'password')->passwordInput() ?>

            <div class="form-group">
                <?= Html::submitButton('Зарегистрироваться', ['class' => 'btn btn-primary']) ?>
            </div>
        <?php ActiveForm::end(); ?>

    </div>



За ранее спасибо за помощь
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
yii\behaviors\TimestampBehavior
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы