Search code examples
symfonyfosuserbundlesymfony-3.2

FOSUser The file was found but the class was not in it, the class name or namespace probably has a typo


My entity is :

<?php

namespace MainBundle\Entity;

use FOS\UserBundle\Model\User as lat_users;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name="lat_users")
 * @ORM\Entity
 */
class User extends lat_users
{
    // ...
}

and my config.yml

...
fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: MainBundle\Entity\lat_users
    from_email:
    
    ...

and it'says :

The autoloader expected class "MainBundle\Entity\lat_users" to be defined in file "/var/www/intranet/vendor/composer/../../src/MainBundle/Entity/lat_users.php". The file was found but the class was not in it, the class name or namespace probably has a typo.

Idon't understand


Solution

  • You should put MainBundle\Entity\User at config, as lat_users is the table name not entity name. your entity name is User, so :

    ...
    fos_user:
        db_driver: orm # other valid values are 'mongodb' and 'couchdb'
        firewall_name: main
        user_class: MainBundle\Entity\User
        from_email:
    
        ...
    

    Also, just as a best practice always use Singular CamelCase for class names and aliases in PHP:

    replace:

    use FOS\UserBundle\Model\User as lat_users;
    
    // ...
    
    class User extends lat_users
    

    by

    use FOS\UserBundle\Model\User as LatUser;
    
    // ...
    
    class User extends LatUser