Конструктор с параметрами

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

Конструктор с параметрами

Сообщение Error202 »

Yii2 - basic

Есть класс, в него нужно передать пользователя

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

class Identity implements IdentityInterface
{
    public $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }
    ...
}
Если index.php имеет

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

defined('YII_ENV') or define('YII_ENV', 'dev');
то вылетает ошибка
ArgumentCountError
Too few arguments to function app\modules\users\entities\Identity::__construct(), 0 passed in /app/vendor/yiisoft/yii2-debug/panels/UserPanel.php on line 89 and exactly 1 expected


Без этого параметра, все работает отлично.

Т.е. я не могу пользоваться панелькой для отладки....
Можно ли как-то поправить это?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Конструктор с параметрами

Сообщение ElisDN »

Отнаследуйтесь от UserPanel и переопределите метод init() с исправлением кода:

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

$identityImplement = new Yii::$app->user->identityClass();
if ($identityImplement instanceof ActiveRecord) {
    $this->filterModel = new \yii\debug\models\search\User();
}
на:

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

if (is_subclass_of(Yii::$app->user->identityClass, ActiveRecord::className())) {
    $this->filterModel = new \yii\debug\models\search\User();
}
и подмените класс панели на свой через Yii::$container.

А потом форкните модуль yii2-debug, исправьте это в его исходниках и отправьте Pull Request.
Error202
Сообщения: 48
Зарегистрирован: 2017.02.21, 14:02

Re: Конструктор с параметрами

Сообщение Error202 »

Спасибо огромное!
Error202
Сообщения: 48
Зарегистрирован: 2017.02.21, 14:02

Re: Конструктор с параметрами

Сообщение Error202 »

Github status: merged
Thanks
Ответить