2amigos/yii2-usuario добавление полей профиля в форму регистрации пользователя

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Sonit
Сообщения: 2
Зарегистрирован: 2018.10.10, 09:55

2amigos/yii2-usuario добавление полей профиля в форму регистрации пользователя

Сообщение Sonit »

Всем привет, я перешёл с dektrium\yii2-user на 2amigos/yii2-usuario и у меня не получается добавить в форму регистрации пользователя поля из профиля.
Что я сделал - заменил RegistrationForm на свой, прописал правила валидации имени из профиля и капчи, попытался прописать такую же функцию, как в модуле от dektrium:

Код: Выделить всё

public function loadAttributes(User $user)
    {
        // $user->setAttributes($this->attributes);
        $user->setAttributes([
            'email'    => $this->email,
            'password' => $this->password
        ]);
        $profile = \Yii::createObject(Profile::className());
        $profile->setAttributes([
            'name' => $this->name
        ]);
        $user->setProfile($profile);
    }
Но она не используется в контроллере регистрации.

Руководства в документах нет, issue висит на гитхабе с декабря 2017 года, до сих пор не закрытое.
https://github.com/2amigos/yii2-usuario/issues/124


Ошибка вылетает на нижней приведённой строчке в контроллере, как её исправить я не знаю, что это за конструктор такой я тоже не знаю, и как он работает - не знаю. :(

Код: Выделить всё

 $user = $this->make(User::class, [], $form->attributes);

Код: Выделить всё

    public function actionRegister()
    {
        if (!$this->module->enableRegistration) {
            throw new NotFoundHttpException();
        }
        /** @var RegistrationForm $form */
        $form = $this->make(RegistrationForm::class);
        /** @var FormEvent $event */
        $event = $this->make(FormEvent::class, [$form]);

        $this->make(AjaxRequestModelValidator::class, [$form])->validate();

        if ($form->load(Yii::$app->request->post()) && $form->validate()) {
            $this->trigger(FormEvent::EVENT_BEFORE_REGISTER, $event);
            /** @var User $user */
            $user = $this->make(User::class, [], $form->attributes);

Текст ошибки:
Setting unknown property: Da\User\Model\User::captcha
Ошибка, в принципе, понятная - в модели user нет такого поля, но как не переписывая всю структуру контроллера добавить поля профиля в форму регистрации - не знаю. :(

Помогите, пожалуйста, буду вам признателен!
Ответить