我的 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
最佳答案
AppBundle:User
您的配置别名解析为 AppBundle\Entity\User
类,这显然不存在。要么使用完整的命名空间 AppBundle\Entity\User\User
或 AppBundle:User\User
别名。
这就是自动映射的工作原理。它在每个包的实体文件夹中查找类。
见doctrine reference docs for more .
关于login - Symfony3 - 扩展命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538827/