vova07 / yii2-start

Yii2-Start application
Other
273 stars 115 forks source link

Регистрация пользователя через атрибуты #30

Closed Asetss closed 10 years ago

Asetss commented 10 years ago

Данный решения красивее. Думаю на втором версии делаешь так.Форму регистрации можно по отдельности. Эту переделать времени нету :[

в модели юзера

   public static function create($attributes)
    {
        /** @var User $user */
        $user = new static();
        $user->setAttributes($attributes);
        $user->setPassword($attributes['password']);
        $user->generateAuthKey();
        if ($user->save()) {
            return $user;
        } else {
            return null;
        }
    }

форма

   public function signup()
    {
        if ($this->validate()) {
            return User::create($this->attributes);
        }

        return null;
    }

Контроллер

   public function actionSignup()
    {
        $model = new SignupForm();
        if ($model->load(Yii::$app->request->post())) {
            $user = $model->signup();
            if ($user) {
                if (Yii::$app->getUser()->login($user)) {
                    return $this->goHome();
                }
            }
        }
vova07 commented 10 years ago

Да, так и делаю.

Asetss commented 10 years ago

с постами и комментами?

vova07 commented 10 years ago

Будут и посты и комменты. На данный момент я только начал допиливать users модуль как отдельное расширение. Идея новой версии заключается в том что почти каждый модуль будет как отдельное расширение, которое можно будет подключать через компосер, как офф. расширения, типа gii, debug и.т.д. Это позволит легко подключать нужные модули, и в тоже время, их можно будет без проблем использовать в других проектах. Если есть предложения, или замечания по данной логике, смело пишите.

Asetss commented 10 years ago

Это Круто,можно легко дополнять и подключать.Если пишем cms это будет очень удобно с модулями shop итп.

vova07 commented 10 years ago

Ну до CMS еще далеко. Посмотрим что получится.

vova07 commented 10 years ago

Связанный issue.

Asetss commented 10 years ago

Отлично,на конец то исправили дубликат.

vova07 commented 10 years ago

Исправили, чему я рад, но есть и другой момент. При использовании логики разделения моделей, в случае реализации добавления и редактирования пользователей через админку, нужно или унаследоватся от основной модели и писать логику в доп. модели (этот вариант мне больше по душе), или создавать еще пару дополнительных моделей, с дополнительной логикой для коректной реализации функционала. И в таком случае смущает то что по сути основная модель при таком расскладе, становится простым хранилишем вспомогательных методов, и не решает напрямую никакой логики кроме выборки своих записей.

vova07 commented 10 years ago

33

vova07 commented 10 years ago

Относительно задача была решена. 100%-я разделение небыла релизована, так как небыло необходимости, но примерно 90% так и работает сейчас. Думаю вопрос закрыт. Если это не так, заново открою по необходимости.