Doctrine 2和Zf2集成

时间:2012-10-22 08:24:12

标签: php doctrine zend-framework2

我想将doctrine 2与zf2集成在一起。我遵循本教程:http://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/

但我对学说cli有一些问题。

当我输入“project \ vendor \ doctrine \ doctrine-module \ bin \ doctrine-module orm:generate-proxies”时,它会显示以下消息:'没有要处理的元数据类'。

这是我的module.config.php文件:

return array(
'controllers' => array(
    'invokables' => array(
        'User\Controller\User' => 'User\Controller\UserController',
    ),
),
'view_manager' => array(
    'template_path_stack' => array(
        'user' => __DIR__ . '/../view',
    ),
),
'router' => array(
    'routes' => array(
        'user' => array(
            'type'    => 'segment',
            'options' => array(
                'route'    => '/user[/:action][/:id]',
                'constraints' => array(
                    'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'     => '[0-9]+',
                ),
                'defaults' => array(
                    'controller' => 'User\Controller\User',
                    'action'     => 'userList',
                ),
            ),
        ),
    ),
),

// Doctrine config
'doctrine' => array(
    'driver' => array(
        __NAMESPACE__ . '_driver' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'cache' => 'array',
            'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
        ),
    'orm_default' => array(
            'drivers' => array(
                __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
            )
        )
    )
)
);

这是\ User \ src \ Entity \ Users.php

namespace User\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\Common\Annotations\AnnotationRegistry;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 * @property string $username
 * @property int $id
 */
class User
{
/**
 * @ORM\Id 
 * @ORM\GeneratedValue
 * @ORM\Column(type="integer")
 * @var int
 */
private $id;

/**
 * @ORM\Column(type="string")
 */
private $username;
}

如果我从注释中删除ORM \,它会向我提供消息'注释'@Entity“类User \ Entity \ User从未导入。您是否忘记为此注释添加“使用”声明?'

1 个答案:

答案 0 :(得分:2)

namespace User;放在module.config.php的第一行。 在使用__NAMESPACE__常量...

时,应定义名称空间