【问题标题】:FOSUser The file was found but the class was not in it, the class name or namespace probably has a typoFOSUser 找到文件但类不在其中,类名或命名空间可能有错字
【发布时间】:2017-11-20 05:33:28
【问题描述】:

我的实体是:

<?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
{
    // ...
}

还有我的 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:
    
    ...

它说:

自动加载器期望类“MainBundle\Entity\lat_users”在文件“/var/www/intranet/vendor/composer/../../src/MainBundle/Entity/lat_users.php”中定义。找到文件但类不在其中,类名或命名空间可能有错字。

不明白

【问题讨论】:

    标签: symfony fosuserbundle symfony-3.2


    【解决方案1】:

    您应该将MainBundle\Entity\User 放在配置中,因为lat_users 是表名而不是实体名。你的实体名称是User,所以:

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

    此外,作为最佳实践,始终使用 Singular CamelCase 作为 PHP 中的类名和别名:

    替换:

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

    通过

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2017-07-12
      • 2011-05-13
      • 1970-01-01
      相关资源
      最近更新 更多