Symfony 4: ошибка Unsezialise (), ["allow_classes" => false] - PullRequest
0 голосов
/ 12 марта 2020

Я занимаюсь разработкой веб-сайта с помощью Synfony 4 и создал логин администратора. Я использовал serialize и unserialize.

  /**
     * @inheritDoc
     */
    public function serialize()
    {
        // TODO: Implement serialize() method.
        return serialize([
            $this->id,
            $this->username,
            $this->password
        ]);
    }

    /**
     * @inheritDoc
     */
    public function unserialize($serialized)
    {
        // TODO: Implement unserialize() method.
        list(
            $this->id,
            $this->username,
            $this->password
            ) = $this->unserialize($serialized, ["allowed_classes" => false]);
    }

В конце $this->unserialize($serialized, ["allowed_classes" => false]); не работает и показывает «В вызове метода предоставляется 2 параметра, но в сигнатуре метода используются 1 параметры» как ошибка в Intellij IDEA. Я не понимаю, что это значит, и ничего не могу найти по этому поводу.

Я думаю, что базовые методы просто хотят unserialize($serialized) или что-то в этом роде, но когда я заполняю форму и отправляю ее, ничего не происходит.

1 Ответ

2 голосов
/ 12 марта 2020

Мы не знаем контекст этих методов, но, используя $this->unserialize(...), вы вызываете текущую функцию (public function unserialize($serialized){...})

Возможно, вы захотите использовать сериализатор по умолчанию PHP. Таким образом, вы, вероятно, должны сделать следующее:

public function unserialize($serialized)
{
    list(
        $this->id,
        $this->username,
        $this->password
        ) = unserialize($serialized, ["allowed_classes" => false]);
}

Если «ничего не произойдет», без дополнительной информации об этой проблеме мы не сможем вам помочь! Вы пытались добавить дамп, чтобы проверить, что происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...