Конструктор User

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Maxemp
Сообщения: 44
Зарегистрирован: 2017.12.04, 17:17
Контактная информация:

Конструктор User

Сообщение Maxemp »

После переписывания метода signup в классе SignUpForm на следующий код:

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

public function signup()
    {
        if (!$this->validate()) {
            return null;
        }
        
        $user = new User($this->username, $this->password, $this->email);
        
        return $user->save() ? $user : null;
    }
Написания конструктора в классе User и трейта InstantiateTrait

Конструктор:

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

public function __construct( string $username, string $password, string $email )
	{
		$this->username = $username;
		$this->email = $email;
		$this->setPassword($password);
		$this->created_at = time();
		$this->status = self::STATUS_ACTIVE;
		$this->generateAuthKey();
		parent::__construct();
	}
Трейт:

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

namespace common\entities;

trait InstantiateTrait
{
	private static $_prototype;

	public static function instantiate($row)
	{
		if (self::$_prototype === null){
			$class = get_called_class();
			self::$_prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($class), $class));
		}
		$entity = clone self::$_prototype;
		$entity->init();
		return $entity;
	}
}
Во время регистрации пользователя выходит ошибка : ArgumentCountError
текст: Too few arguments to function common\entities\User::__construct(), 0 passed in /app/vendor/yiisoft/yii2-debug/models/search/User.php on line 34 and exactly 3 expected
Как решить эту проблему ?
Maxemp
Сообщения: 44
Зарегистрирован: 2017.12.04, 17:17
Контактная информация:

Re: Конструктор User

Сообщение Maxemp »

Уточню, пользователя сохраняет в бд, но авторизованного не пускает на главную страницу
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Конструктор User

Сообщение ElisDN »

Обновил код InstantiateTrait: https://github.com/ElisDN/yii2-demo-agg ... eTrait.php
Maxemp
Сообщения: 44
Зарегистрирован: 2017.12.04, 17:17
Контактная информация:

Re: Конструктор User

Сообщение Maxemp »

ElisDN писал(а): 2018.01.15, 18:32 Обновил код InstantiateTrait: https://github.com/ElisDN/yii2-demo-agg ... eTrait.php
Изменение трейта не помогло
shovhan
Сообщения: 1
Зарегистрирован: 2018.02.01, 01:01

Re: Конструктор User

Сообщение shovhan »

переделайте статическим методом, без трейта
mihacoder
Сообщения: 8
Зарегистрирован: 2017.12.27, 13:01

Re: Конструктор User

Сообщение mihacoder »

Что-то и у меня не работает.
Ответить