【发布时间】:2015-07-23 12:11:28
【问题描述】:
我在 CodeIgniter Controller 的 Doctrine.php 中使用 Doctrine 的生成方法生成了实体:
function generate_classes(){
$this->em->getConfiguration()
->setMetadataDriverImpl(
new DatabaseDriver(
$this->em->getConnection()->getSchemaManager()
)
);
$cmf = new DisconnectedClassMetadataFactory();
$cmf->setEntityManager($this->em);
$metadata = $cmf->getAllMetadata();
$generator = new EntityGenerator();
$generator->setUpdateEntityIfExists(true);
$generator->setGenerateStubMethods(true);
$generator->setGenerateAnnotations(true);
$generator->generate($metadata, APPPATH."models/Entities");
}
生成的实体具有以下语法:
use Doctrine\ORM\Mapping as ORM;
/**
* Users
*
* @ORM\Table(name="users")
* @ORM\Entityz
*/
class Users
{
/**
* @var integer
*
* @ORM\Column(name="idusers", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $idusers;
/**
* @var string
*
* @ORM\Column(name="first_name", type="string", length=45, nullable=true)
*/
private $firstName;
/**
* @var string
*
* @ORM\Column(name="last_name", type="string", length=45, nullable=true)
*/
现在从我的模型中调用这些实体不起作用。模型没有找到实体。手动将语法更改为以下代码示例后,我让它工作了:
use Doctrine\ORM\Mapping as ORM;
/**
* Users
*
* @Entity @Table(name="users")
*/
class Users
{
/**
* @var integer
*
* @Column(name="idusers", type="integer", nullable=false)
* @Id
*
*/
private $idusers;
/**
*
* @GeneratedValue
* @Column(name="first_name", type="string", length=45, nullable=true)
*/
private $firstName;
现在一切正常! 我不会手动更改每个实体。 如何配置 Doctrine 以生成具有正确语法的实体。正如他们的教程中所使用的那样? http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/getting-started.html
菜鸟问题。请帮忙!
【问题讨论】:
标签: codeigniter orm configuration doctrine