它可能是我的配置文件中的内容,因为它没有在任何地方显示映射,但我已经检查过,根据所有来源它似乎是正确的。
我尝试了几种方法来尝试解决这个问题,但无论如何,一旦我运行
$ vendor/bin/doctrine-module orm:generate:entities -v module/Users/src/Users/Entity/
我得到了
No Metadata Classes to process.
如果我跑
$ vendor/bin/doctrine-module orm:info
我得到了
[例外]根据当前配置,您没有任何映射的Doctrine ORM实体。如果您有实体或映射文件,则应检查映射配置是否存在错误。
这里是module.config.php的内容,该模块名为' Users'。
<?php
namespace Users;
return array(
// ...
// 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'
)
)
)
)
);
以下是我的实体,以防万一。
<?php
namespace Users\Entity;
//Imports from mapping classes
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\Table;
use Doctrine\ORM\Mapping\Index;
use Doctrine\ORM\Mapping\Id;
use Doctrine\ORM\Mapping\GeneratedValue;
use Doctrine\ORM\Mapping\Column;
// Entity and index creation
/**
*User Entity
*
*@Entity
*@Table(indexes={
* @Index(name="idx_username", columns="username"),
* @Index(name="idx_email", columns="email")
*})
*/
class User
{
/**
*@var int
*
*@Id
*@generatedValue
*
*@Column(type="integer")
*/
protected $id=NULL;
/**
*@var string
*
*@Column(type="string",length=50,nullable=true)
*/
protected $username=NULL;
/**
*@var string
*
*@Column(type="string",length=254,nullable=true)
*/
protected $email=NULL;
/**
*@ORM\Column(type="binary",length=60,nullable=true)
*/
protected $password=NULL;
/**
*@var int
*
*@Column(type="integer"nullable=true)
*/
protected $avatar_id=NULL;
/**
*@var string
*
*@Column(type="string",length=25,nullable=true)
*/
protected $name=NULL;
/**
*@var string
*
*@Column(type="string",length=50,nullable=true)
*/
protected $surname=NULL;
/**
*@var string
*
*@Column(type="string",length=255)
*/
protected $bio='';
/**
*@var string
*
*@Column(type="string",length=255)
*/
protected $location='';
/**
*@var int
*
*@Column(type="smallint",nullable=true)
*/
protected $gender=NULL;
}
最后来到我的module.php
<?php
namespace Users;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
class Module
{
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
}
我模块的树
Users
├── config
│ └── module.config.php
├── #Module.php#
├── Module.php
└── src
└── Users
└── Entity
├── User.php
└── User.php~
非常感谢任何和所有帮助。提前谢谢。
答案 0 :(得分:0)
我终于找到了答案,问题是我使用的是 NAMESPACE 属性,而我的实体与module.config.php上的命名空间名称不同我解决了它通过更改&#39;用户&#39;中的所有命名空间用户并更改所有文件模块名称。
例如,module.config.php上的原始命名空间是&#39;用户&#39;,我将其更改为&#39; User&#39;。像魅力一样工作。
这是我最后得到的更正文件的树。
User
├── config
│ ├── module.config.php
│ └── module.config.php~
├── Module.php
├── Module.php~
└── src
└── User
└── Entity
├── User.php
└── User.php~
注意一致性窥视:)