Я использую голосование с symfony, чтобы иметь дело с доступом пользователей на моем сайте. Когда пользователь не прошел проверку подлинности я получаю ошибку:Предупреждение: get_class() ожидает, что параметр 1 будет объектом, строка задана
Warning: get_class() expects parameter 1 to be object, string given
, когда пользователь получает доступ к странице, где называется избиратель. код в избирателю trigerring вопрос является:
public function vote(TokenInterface $token, $object, array $attributes)
{
if (!$object || !$this->supportsClass(get_class($object))) {
return self::ACCESS_ABSTAIN;
}
...}
, когда объект = «Anon» и это обычный код, взятый с веб-сайта symfony. Я могу, конечно, изменить этот код, чтобы проверить, не является ли объект объектом или нет, но мне было интересно, было ли это нормально? Я бы предпочел, чтобы избирателя не вызывали на не объект.
EDIT:
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);
}
Можете ли вы опубликовать свою реализацию 'supportAttribute()' и 'supportClass()'? Мне интересно, правильно ли вы проверяете, что объект имеет соответствующий тип. –