【发布时间】:2014-03-24 07:26:51
【问题描述】:
您好,我使用 composer 创建了 ZF2 骨架应用程序。 在下面安装了学说模块、学说模块等composer文件:
{ "name": "zendframework/skeleton-application", "description": "Skeleton Application for ZF2", "license": "BSD-3-Clause", "keywords": [ "framework", "zf2" ], "homepage": "http://framework.zend.com/", "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.2.*", "doctrine/doctrine-orm-module": "0.*", "doctrine/data-fixtures": "dev-master", "zendframework/zend-developer-tools": "dev-master", "doctrine/migrations": "dev-master", "bjyoungblood/bjy-profiler": "dev-master", "zendframework/zftool": "dev-master" } }
在模块中添加了如下教义配置:
'doctrine' => array( 'driver' => array( __NAMESPACE__.'_entities' => array( 'class' =>'Doctrine\ORM\Mapping\Driver\AnnotationDriver', //'cache' => 'array', 'paths' => array( __DIR__ . '/../src/'. __NAMESPACE__ .'/Entity', ) ), 'orm_default' => array( 'drivers' => array( __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_entities' ) ))),
我将我的实体添加到: module/Application/src/Application/Entity/User.php
但是当我运行时: php zf.php orm:信息
我收到以下消息:
[例外]
您没有任何映射的 Doctrine ORM 实体 按照目前的配置。如果您有实体或 映射文件,您应该检查映射配置是否有错误。
如果我尝试
php zf.php orm:schema-tool:create
我明白了:
没有要处理的元数据类。
如何让 Doctrine 生成我的数据库?我做错了什么?
编辑: 这是 cmets 中要求的实体代码:
<?php namespace Application\Entity; use Doctrine\ORM\Mapping as ORM; /** @ORM\Entity */ class User { /** * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Column(type="integer") */ protected $id; /** @ORM\Column(type="string") */ protected $fullName; }
小更新,
我实际上是在虚拟机中运行它。文件所在的文件夹是从主机挂载的。如果我将文件复制到 tmp 文件夹,它工作得很好。如果我在挂载的文件夹中运行 php zf.php orm:info ,我会收到错误消息。 使用的虚拟化是 Parallels 8,主机操作系统是 OSX,来宾是 Debian 7。 我在 /media/psf/mount 工作。
【问题讨论】:
-
您是否在配置文件中添加了命名空间?
-
是的。在文件的顶部有命名空间应用程序;否则会出现致命错误...
-
你能显示你的实体代码吗?
-
当然,我将它添加到原始问题中。
-
小更新,我实际上是在虚拟机中运行它。文件所在的文件夹是从主机挂载的。如果我将文件复制到 tmp 文件夹,它工作得很好。如果我在挂载的文件夹中运行 php zf.php orm:info 我会得到一个错误。
标签: doctrine-orm zend-framework2