【发布时间】:2023-04-05 23:02:01
【问题描述】:
它可能在我的配置文件中,因为它没有在任何地方显示映射,但我已经检查过,根据所有来源它似乎是正确的。
我已经尝试了几种方法来尝试解决这个问题,但无论如何,一旦我运行了
$ 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~
非常感谢任何和所有帮助。提前致谢。
【问题讨论】:
-
代码很多,但如果您能多花一点时间来解释您的实际问题,那将会很有帮助。
-
为清楚起见,已对问题进行了编辑
标签: php zend-framework doctrine-orm