Catchable Fatal Error: An object of class __PHP_Incomplete_Class cannot be converted to a string

I got an error when I want to open a simple page. This is a complete error:

ContextErrorException: Catchable Fatal Error: An object of class __PHP_Incomplete_Class cannot be converted to a string in / Applications / mampstack -5.4.20-0 / apache2 / htdocs / engelsvandenbroecke / vendor / symfony / symfony / src / Symfony / Component / Security / Core / Authentication /Token/AbstractToken.php line 70

What I did in my symfony project:

  • Creating Entities from the Database
  • Change user object for security
  • Edit security.yml
  • Two data files added

This is my user class:

<?php namespace Beachteam\BeachteamBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\User\AdvancedUserInterface; /** * User * * @ORM\Table(name="user", uniqueConstraints={@ORM\UniqueConstraint(name="username_UNIQUE", columns={"username"})}, indexes={@ORM\Index(name="fk_users_roles_idx", columns={"role_id"})}) * @ORM\Entity */ class User implements AdvancedUserInterface { /** * @var string * * @ORM\Column(name="username", type="string", length=45, nullable=false) */ private $username; /** * @var string * * @ORM\Column(name="password", type="string", length=60, nullable=false) */ private $password; /** * @var string * * @ORM\Column(name="salt", type="string", length=30, nullable=false) */ private $salt; /** * @var string * * @ORM\Column(name="firstname", type="string", length=45, nullable=false) */ private $firstname; /** * @var string * * @ORM\Column(name="surname", type="string", length=45, nullable=false) */ private $surname; /** * @var string * * @ORM\Column(name="email", type="string", length=255, nullable=false) */ private $email; /** * @var string * * @ORM\Column(name="token", type="string", length=45, nullable=true) */ private $token; /** * @var \DateTime * * @ORM\Column(name="created", type="datetime", nullable=false) */ private $created; /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var \Beachteam\BeachteamBundle\Entity\Role * * @ORM\ManyToOne(targetEntity="Beachteam\BeachteamBundle\Entity\Role") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="role_id", referencedColumnName="id") * }) */ private $role; private $plainPassword; /** * Constructor */ public function __construct() { $this->salt = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36); } /** * Set username * * @param string $username * @return User */ public function setUsername($username) { $this->username = $username; return $this; } /** * Get username * * @return string */ public function getUsername() { return $this->username; } /** * Set password * * @param string $password * @return User */ public function setPassword($password) { $this->password = $password; return $this; } /** * Get password * * @return string */ public function getPassword() { return $this->password; } /** * Set salt * * @param string $salt * @return User */ public function setSalt($salt) { $this->salt = $salt; return $this; } /** * Get salt * * @return string */ public function getSalt() { return $this->salt; } /** * Set firstname * * @param string $firstname * @return User */ public function setFirstname($firstname) { $this->firstname = $firstname; return $this; } /** * Get firstname * * @return string */ public function getFirstname() { return $this->firstname; } /** * Set surname * * @param string $surname * @return User */ public function setSurname($surname) { $this->surname = $surname; return $this; } /** * Get surname * * @return string */ public function getSurname() { return $this->surname; } /** * Set email * * @param string $email * @return User */ public function setEmail($email) { $this->email = $email; return $this; } /** * Get email * * @return string */ public function getEmail() { return $this->email; } /** * Set token * * @param string $token * @return User */ public function setToken($token) { $this->token = $token; return $this; } /** * Get token * * @return string */ public function getToken() { return $this->token; } /** * Set created * * @param \DateTime $created * @return User */ public function setCreated($created) { $this->created = $created; return $this; } /** * Get created * * @return \DateTime */ public function getCreated() { return $this->created; } /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set role * * @param \Beachteam\BeachteamBundle\Entity\Role $role * @return User */ public function setRoles(\Beachteam\BeachteamBundle\Entity\Role $role = null) { $this->role = $role; return $this; } /** * Get role * * @return \Beachteam\BeachteamBundle\Entity\Role */ public function getRoles() { return array($this->role->getName()); } public function eraseCredentials() { $this->setPlainPassword(null); } public function getPlainPassword() { return $this->plainPassword; } public function setPlainPassword($plainPassword) { $this->plainPassword = $plainPassword; } /** * Implementation of AdvancedUserInterface method * * @return boolean */ public function isAccountNonExpired() { return true; } /** * Implementation of AdvancedUserInterface method * * @return boolean */ public function isAccountNonLocked() { return true; } /** * Implementation of AdvancedUserInterface method * * @return boolean */ public function isCredentialsNonExpired() { return true; } /** * Implementation of AdvancedUserInterface method * * @return boolean */ public function isEnabled() { return true; } } 

My security.yml:

  security: encoders: Beachteam\BeachteamBundle\Entity\User: algorithm: bcrypt cost: 15 role_hierarchy: ROLE_SUPER_ADMIN: ROLE_ADMIN providers: users: entity: class: BeachteamBundle:User property: username firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false secured_area: pattern: ^/ anonymous: ~ form_login: login_path: beach_team_loginpage check_path: beach_team_logincheck username_parameter: login[username] password_parameter: login[password] always_use_default_target_path: true default_target_path: beach_team_adminpage logout: path: beach_team_logout target: beach_team_loginpage remember_me: key: "%secret%" lifetime: 31536000 # 365 days in seconds path: / domain: ~ # Defaults to the current domain from $_SERVER remember_me_parameter: remember access_control: #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 
+6
source share
2 answers

This error usually means that you are trying to deserialize an object without a loaded class for that object. Therefore, you must somehow define this class (for example, include it in a file), and then deserialize it.

+8
source

For me, help'd clearing the cache / cookies in the browser. (An old version of the user object was saved in the browser session).

+26
source

All Articles