我的symfony3结构中有以下目录结构:
src
AppBundle
AppBundle.php
Entity
User
User.php
UserRepository.php
在我的User.php之上:
<?php
namespace AppBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* @ORM\Table(name="user")
* @ORM\Entity(repositoryClass="AppBundle\Entity\User\UserRepository")
*/
class User implements UserInterface {
它告诉我:
undefined constant User
有没有办法扩展命名空间?
谢谢和问候!
编辑:
出现“用户”:
security:
providers:
in_memory:
memory:
users:
admin:
password: admin
roles: 'ROLE_ADMIN'
our_db_provider:
entity:
class: AppBundle:User
property: username
encoders:
AppBundle\Entity\User\User:
algorithm: bcrypt
答案 0 :(得分:3)
AppBundle:User
别名会解析为AppBundle\Entity\User
类,这显然不存在。使用完整的命名空间AppBundle\Entity\User\User
或AppBundle:User\User
别名。
这就是自动映射的工作原理。它在每个包中的Entity文件夹中查找类。