Что я сделал - заменил 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);
Текст ошибки:
Ошибка, в принципе, понятная - в модели user нет такого поля, но как не переписывая всю структуру контроллера добавить поля профиля в форму регистрации - не знаю.Setting unknown property: Da\User\Model\User::captcha
Помогите, пожалуйста, буду вам признателен!