Skip to content

Ошибка в шаге 0,3 #18

Closed
@Carsak

Description

@Carsak

Не мог понять в чем ошибка. Шаг step-0.3.
При повторном опросе не бросалось исключение. Редактировал сначала в Sublime. Затем перешел на PHPstorm и он сразу показал ошибку.

classAccessOnce extends Behavior
{
    public function events()
    {
        $owner = $this->owner;
        if ($owner instanceof Controller) {
            return [
                $owner::EVENT_BEFORE_ACTION => 'имя_обработчика',
                $owner::EVENT_AFTER_ACTION => 'имя_обработчика',
            ];
        }

        return parent::events();
    }
}

Правильно будет

if ($owner instanceof \yii\web\Controller) {
            return [
                $owner::EVENT_BEFORE_ACTION => 'checkAccess',
                $owner::EVENT_AFTER_ACTION => 'closeDoor',
            ];
        }

То есть не указан неймспейс класса Controller. Из за этого результат проверки всегда была false.
Другая более легкая ошибка.

throw new HttpException(403, $this->message);
// правильно
throw new \yii\web\HttpException(403, $this->message);

Тоже не был указан неймспейс. Но здесь уже сам фреймворк подскажет. А на первую ошибку не ругается, из за этого пришлось потратить время на проверку всего остального.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions