Symfony 4-注销时:注意:unserialize():偏移7899处的错误为17631字节

我刚刚在Symfony 4项目中发现了一些困扰。

我没有问题登录到我的帐户。但是奇怪的是,一旦我进入某个页面,然后如果我注销后就出现此错误:

  

注意:unserialize():在偏移7899为17631字节时发生错误

Symfony 4-注销时:注意:unserialize():偏移7899处的错误为17631字节

这是我的用户实体:

/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 * @ORM\HasLifecycleCallbacks()
 * @UniqueEntity(
 *  fields = {"email"},*  message = "Cette adresse email a déjà été utilisée."
 * )
 */
class User implements UserInterface
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * Adresse email de l'utilisateur
     * @ORM\Column(type="string",length=180,unique=true)
     * @Assert\NotBlank()
     * @Assert\Email(message="Veuillez renseigner un email valide")
     */
    private $email;

    /**
     * Rôles de l'utilisateur
     * @ORM\Column(type="json")
     */
    private $roles = [];

    /**
     * Mot de passe de l'utilisateur
     * @var string The hashed password
     * @ORM\Column(type="string")
     * @Assert\Length(
     *      min = 4,*      minmessage = "Votre mot de passe doit contenir au moins {{limit}}",* )
     */
    private $password;

    /**
     * Confirmation du mot de passe de l'utilisateur
     * @Assert\EqualTo(propertyPath="password",message="Vous n'avez pas correctement confirmé votre mot de passe")
     */
    public $passwordConfirm;

    /**
     * Nom de l'utilisateur
     * @ORM\Column(type="string",length=255)
     * @Assert\Length(
     *      min = 1,*      max = 20,*      minmessage = "Votre nom doit contenir au moins {{limit}} caractère",*      maxMessage = "Votre nom ne peut pas contenir plus de {{limit}} caractères"
     * )
     * @Assert\NotBlank
     */
    private $nom;

    /**
     * Prénom de l'utilisateur
     * @ORM\Column(type="string",*      minmessage = "Votre prénom doit contenir au moins {{limit}} caractère",*      maxMessage = "Votre prénom ne peut pas contenir plus de {{limit}} caractères"
     * )
     * @Assert\NotBlank
     */
    private $prenom;

    /**
     * Slug de l'utilisateur
     * @ORM\Column(type="string",length=255)
     */
    private $slug;

    /**
     * Absences de l'utilisateur
     * @ORM\OneToMany(targetEntity="App\Entity\Absence",mappedBy="user",orphanRemoval=true,cascade={"persist","remove"})
     */
    private $absences;

    /**
     * Service de l'utilisateur
     * @ORM\ManyToOne(targetEntity="App\Entity\GroupeValidateurs",inversedBy="users")
     * @ORM\JoinColumn(nullable=true)
     */
    private $groupe;

    /**
     * Soldes des congés de l'utilisateur
     * @ORM\OneToMany(targetEntity="App\Entity\SoldeConges",fetch="EAGER","remove"})
     */
    private $soldeConges;

    /**
     * Feuille de congés de l'utilisateur
     * @ORM\OneToOne(targetEntity="App\Entity\FeuilleConge",inversedBy="user","remove"})
     */
    private $feuilleConge;

    /**
     * Avatar de l'utilisateur
     * @ORM\OneToOne(targetEntity="App\Entity\Avatar","remove"})
     */
    private $avatar;

    /**
     * Profession de l'utilisateur
     * @ORM\Column(type="string",length=255,nullable = true)
     * @Assert\NotBlank
     */
    private $profession;

    /**
     * Date de demande de réinitialisation du mot de passe de l'utilisateur
     * @ORM\Column(type="datetime",nullable=true)
     */
    private $passwordRequestedAt;

    /**
     * Token de réinitialisation du mot de passe de l'utilisateur
     * @ORM\Column(type="string",nullable=true)
     */
    private $token;

    /**
     * Ordres de mission de l'utilisateur
     * @ORM\OneToMany(targetEntity="App\Entity\OrdreMission",mappedBy="user")
     */
    private $ordreMissions;

    /**
     * Signature de l'utilisateur
     * @ORM\OneToOne(targetEntity="App\Entity\Signature","remove"})
     */
    private $signature;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Validateur",mappedBy="validateur",cascade={"persist"})
     */
    private $validateurs;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\AbsencesPrevision",orphanRemoval=true)
     */
    private $absencesPrevisions;

    /**
     * @ORM\Column(type="string",length=255)
     */
    private $hexColor;



    /**
     * @ORM\Column(type="boolean")
     */
    private $autoValidation = false;

    /**
     * @Assert\Expression(
     *     "not (this.getautovalidation() == true and this.getSuppleant() != null)",*     message="Vous devez choisir entre l'auto-validation et avoir un suppléant"
     * )
     * @ORM\ManyToOne(targetEntity="App\Entity\User",inversedBy="delegues")
     */
    private $suppleant;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\User",mappedBy="suppleant")
     */
    private $delegues;

    /**
     * @ORM\Column(type="boolean")
     */
    private $activeMails = true;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Entreprise",inversedBy="users")
     * @ORM\JoinColumn(nullable=false)
     */
    private $entreprise;

我在互联网上看过,但没有发现与我的问题相符的内容。我绝不要求在我的代码中反序列化我的实体

更新:

这是我的 security.yaml

security:
  always_authenticate_before_granting: true

  encoders:
    App\Entity\User:
      algorithm: auto

  # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
  providers:
    in_memory: { memory: ~ }
    # used to reload user from session & other features (e.g. switch_user)
    in_database:
      entity:
        class: App\Entity\User
        property: email
  firewalls:
    dev:
      pattern: ^/(_(profiler|wdt)|css|images|js)/
      security: false
    main:
      anonymous: true

      provider: in_database

      form_login:
        login_path: account_login
        check_path: account_login
        default_target_path: home

      logout:
        path: account_logout
        target: account_login
      # activate different ways to authenticate
      # https://symfony.com/doc/current/security.html#firewalls-authentication
      # https://symfony.com/doc/current/security/impersonating_user.html
      # switch_user: true

  # Easy way to control access for large sections of your site
  # Note: Only the *first* access control that matches will be used
  access_control:
    - {path : /login,roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - {path : /register,roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: /requete,roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/reset,roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/,roles: ROLE_USER }
    - { path: ^/chef-service,roles: ROLE_CHEF_SERVICE }
    - { path: ^/validateur,roles: [ROLE_VALIDATEUR,ROLE_SUPPLEANT] }
    - { path: ^/super-validateur,roles: ROLE_SUPER_VALIDATEUR }
    - { path: ^/rh,roles: ROLE_RH }
    - { path: ^/admin,roles: ROLE_ADMIN }

我意识到我在某些页面上也遇到此错误。因此,我必须刷新页面,这会将我重定向到登录页面。我将进行连接,这次它将使我回到正确的页面,并且没有错误。但是,如果我再回去,那又会犯错。

PS:请原谅我英语不好,我是法语

keainono11 回答:Symfony 4-注销时:注意:unserialize():偏移7899处的错误为17631字节

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2961869.html

大家都在问