Symfony3 - 扩展命名空间

时间:2015-12-30 23:26:15

标签: login namespaces symfony

我的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

1 个答案:

答案 0 :(得分:3)

您的配置的

AppBundle:User别名会解析为AppBundle\Entity\User类,这显然不存在。使用完整的命名空间AppBundle\Entity\User\UserAppBundle:User\User别名。

这就是自动映射的工作原理。它在每个包中的Entity文件夹中查找类。

请参阅doctrine reference docs for more