问题标签 [doctrine-orm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
632 浏览

zend-framework - 混合 Zend Framework 1.11 和 Doctrine 2 自动加载器时的奇怪之处

我在我的 ZF/Doctrine2 应用程序中设置了自动加载,如下所示

我发现DoctrineExtensions自动加载不起作用,而其他类...为了验证路径等是否正确,我试过了

它有效。所以它似乎与 Zend Framework 有关系?

0 投票
2 回答
1096 浏览

php - 教义 2 配置

我是处理教义的初学者。我去了他们的网站,发现 2.0 版(稳定版)似乎是最新的。使用 PEAR 方法安装它,虽然有一些困难。文档对我来说似乎很混乱,但是我在互联网上搜索并找到了 boostrap 文件的样本。Doctrine 2.0 的文档可以在这里找到 。

`我确实按照说明包含了类加载文件,就像 require_once ('libs/Doctrine/Common/ClassLoader.php'); 一开始。

发现方法“execute”在版本 2 中是“exec”,并且您在版本 2 中使用 DriverManager 而不是其他东西。现在,当我尝试测试 Doctrine 是否有效时,它没有给我任何输出,并且给出了意外的 T_STRING 错误,这实际上意味着命令不被理解。

在 1.2 版中,有一个使用 getPath() 的测试,但在 2.0 版中没有这个函数,或者我做错了什么。注意 $conn->exec 也不做任何事情。

我运行 Windows 7 和 WAMP 服务器版本 2,PHP 5.3.3。我在我的项目目录中使用 Doctrine 的文件夹,但我并没有真正了解 PEAR 安装的目的是什么?有没有机会在不添加到项目目录的情况下使用 Doctrine?

提前致谢。

0 投票
1 回答
177 浏览

zend-framework - 从 Doctrine2 中检索对象会导致模型类的 __construct() 运行吗?

当我检索一个对象时说

或其他方法如 DQL,findBy*()导致__construct()模型类的运行?我有一个问题,我在那里设置变量,比如对 EntityManager 的引用,我发现它没有设置。

我尝试放入die()__construct()它不会停止应用程序。我可以说如果我想设置其他属性/字段,比如EntityManager $em我必须以其他方式进行吗?也许像

0 投票
2 回答
146 浏览

ajax - 添加/编辑模型的代码属于哪里?模型或控制器

我正在使用带有 ORM(Doctrine 2)的 MVC 框架(Zend 框架)。乍一看,答案似乎是模型。但经过一番思考,我想知道它是否应该在控制器中。我指的是像这样的功能

这样的功能似乎还可以。但是如果我允许通过 AJAX 进行内联编辑。例如。只需编辑产品名称,我想在我的控制器中,我会使用类似的东西

但是,既然我的$em控制器中无论如何都需要一个实体管理器,它会像我的控制器中的数据库代码一样吗?这是否意味着我做错了?或者也许我可以做类似的事情

在我的控制器中?

0 投票
1 回答
463 浏览

php - Doctrine2:模式工具映射超类问题


使用上面的代码,当我尝试执行时

学说模式工具:创建

我收到 BaseClass not found 错误,但是当我将 Aclass 名称更改为 Dclass (按字母顺序在 BaseClass 之后)时,一切正常。我记得在某处看到一些错误报告说,这与字母顺序有关,但我找不到该报告,我想知道这个问题是否有解决方案?顺便说一句,我使用的是学说 2.0 稳定版。

0 投票
1 回答
416 浏览

zend-framework - 在 Zend 框架应用程序中放置服务/数据访问类的位置

我最初想了解如何从实体类中访问 Doctrine 2 的实体管理器。但是我在 Doctrine 2.0 实体中看到了另一个问题 Using EntityManager,并了解到我应该使用服务类。我想知道应该将 Zend 框架应用程序放在哪里?它也被称为 DAO(数据访问对象)吗?我正在考虑将其命名为 DAO 而不是 Service as Service 听起来很像外部站点使用的东西(如 Web 服务)?

我在想类似的东西Application_Models_DAO_User

0 投票
1 回答
216 浏览

php - (数据访问)服务类的结构是什么

我了解到我应该使用服务类将实体持久保存到数据库中,而不是将此类逻辑放入模型/控制器中。我目前将我的服务类设置为

我想知道这是否应该是服务类的结构?服务对象在哪里代表实体/模型?或者,也许我每次想要进行编辑时都应该传递一个用户对象

我正在使用 Doctrine 2 和 Zend 框架,但没关系

0 投票
1 回答
550 浏览

zend-framework - 使用 PHPUnit 和 Doctrine2 进行单元测试:自动加载失败

我收到此错误

注意它的重复“ D:\Projects\Tickle\Application\Models\Application\Models\User.phpApplication\Modelsecho在一些语句的帮助下,我将其缩小到单元测试的 1 个功能

全班http://pastebin.com/rJungFvP

所以我尝试在 Tasks 类中查找使用 User 的东西……唯一可能使用 User 类的东西是

除此之外,我看不到任何用户的使用。全班http://pastebin.com/wDPXUPSV

我做错了什么?

0 投票
2 回答
5271 浏览

php - 除非我明确调用 AnnotationDriver::getAllClassNames,否则教义不起作用

我第一次尝试使用 Doctrine ORM,我正在按照此处找到的配置

执行这些步骤会直接导致以下错误:

警告: class_parents() [function.class-parents]: Class MyProject\Model\User 不存在,无法 在第222 行的/opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadataFactory.php中加载

警告: array_reverse() 期望参数 1 是数组,布尔值在 /opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadataFactory.php222行

警告:在第222 行的/opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadataFactory.php中 为 foreach() 提供的参数无效

致命错误: /opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadata.php:67 中的消息“Class MyProject\Model\User 不存在”未捕获的异常“ReflectionException”

堆栈跟踪:

#0 /opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadata.php(67): ReflectionClass->__construct('MyProject\Model...')

#1 /opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadataFactory.php(350): Doctrine\ORM\Mapping\ClassMetadata->__construct('MyProject\Model...')

#2 /opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadataFactory.php(260): Doctrine\ORM\Mapping\ClassMetadataFactory->newClassMetadataInstance('MyProject\Model...')

#3 /opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadataFactory.php(169): Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata('MyProject\Model...')

#4 /opt/local/lib/php/Doctrine/ORM/EntityManager.php(247): Doctrine\ORM\Mapping\ClassMetadataFactory->getMetadataFor('MyProject\Model...')

#5 /opt/local/lib/php/Doctrine/ORM/EntityManager.php(563): Doctrine\ORM\EntityManager->getClassMetadata('MyProject\Model...')

#6 /opt in /opt/local/lib/php/Doctrine/ORM/Mapping/ClassMetadata.php67行

如果在示例代码中添加以下行(用下面的注释表示),此错误就会消失,并且代码可以完美运行:

没有任何内容提到需要此调用才能使示例代码正常工作;这只是我在尝试查看错误发生的位置时将一些信息回显到屏幕时偶然发现的事情。

是否有需要此调用的原因(以及示例代码中未提及的原因)?是否应该调用其他东西,这是我原来错误的根本原因?

(我可以根据需要发布更多代码,我只是不确定什么对解决这个问题最有帮助,因为这是我第一次使用 Doctrine。)

编辑:我忽略了实际发生错误的行:

0 投票
3 回答
3683 浏览

doctrine - 关于 Doctrine ORM 的 YAML 映射的完整文档?

似乎缺少实体的YAML 映射文档。它没有解释不同的类型、不同的生成器策略、mappedBy 的含义、允许的级联值类型、如何定义多对一关系等等。在哪里可以找到此 YAML 文件的完整文档?