Предупреждение: get_class () ожидает, что параметр 1 будет объектом, задана строка

Я использую голосование с Symfony, чтобы иметь дело с доступом пользователей на моем сайте.
Когда пользователь не аутентифицирован, я получаю ошибку:

Warning: get_class() expects parameter 1 to be object, string given

когда пользователь обращается к странице, где вызывается избиратель.
Код в избирателе вызывает проблему:

public function vote(TokenInterface $token, $object, array $attributes)
{
if (!$object || !$this->supportsClass(get_class($object))) {
return self::ACCESS_ABSTAIN;
}
...}

когда объект = ‘anon.’ и это обычный код, взятый с сайта Symfony.
Конечно, я могу изменить этот код, чтобы проверить, является ли объект объектом или нет, но мне было интересно, было ли это нормально? Я бы прыгнул, что избиратель не будет вызван на не объект.

РЕДАКТИРОВАТЬ:
SuportsClass и SupportsAttribute также являются значениями по умолчанию:

protected function getSupportedClasses()
{
return array(
'AppBundle\Entity\User\Associate',
);
}

protected function getSupportedAttributes()
{
return array(self::SELECT_ASSOCIATES, self::GRANT_RIGHTS, self::REMOVE_RIGHT, self::DISPLAY_RIGHTS);
}

0

Решение

Когда пользователь не вошел в систему, но контроль доступа разрешает анонимных пользователей, пользователь представляет собой строку «anon». вместо экземпляра UserInterface.

Вы должны поставить чек в supportsClass (например. return is_object($objec);).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]