gpt4 book ai didi

php - Zend 1.11 和 Doctrine 2 自动从现有数据库生成所需的一切

转载 作者:可可西里 更新时间:2023-11-01 13:56:27 26 4
gpt4 key购买 nike

我是 ORM 的新手,我真的很想学习它。按照本教程,我成功地使用 Zend 1.11.x 安装了 Doctrine 2.1 的所有类和配置。

http://www.zendcasts.com/unit-testing-doctrine-2-entities/2011/02/它使用 Bisna 插件和 Doctrine 脚本。

现在我的问题是他清楚地解释了如何通过 Doctrine 类创建实体和表,但没有解释如何从现有数据库自动生成代理和 repo 类,这有助于我选择、插入和更新。我总是使用 MySQL Workbench 创建我的数据库。

我也遵循了下面的教程

http://www.zend.com/en/webinar/Framework/70170000000bSrG-webinar-zf-v-1-doctrine-v-2-20101214.flv

我的数据库非常复杂,关系以各种可能的方式流动。如果我按照这些教程中解释的步骤进行操作,我将永远无法完成我的项目。任何人都可以解释一下配置后如何开始使用 Doctrine。考虑到我已经有一个数据库并且我的模型文件夹是空的。我的文件夹结构如下。

    C:/zf/library/Doctrine
C:/zf/library/Symfony
C:/zf/library/ZC -- (my model which should contain the proxies and repo of Doctrine. At the moment it contains nothing.)
C:/zf/library/Zend
C:/zf/scripts/doctrine.php

请帮帮我!

我昨天发了同样的帖子,但没有人回复我的帖子。如果您需要我提供更多信息,请告诉我。

谢谢,

卡尔提克

最佳答案

根据 Doctrine,您应该首先自己创建实体,然后从这些实体创建数据库模式。

但是因为您已经有一个数据库,所以您可能不需要它。可以将您的数据库转换为 PHP、XML 或 Yaml 中的 Doctrine2 实体。

你应该仔细看看 Doctrine 提供的命令行工具和 Bisna 胶水,因为你可以在那里生成很多东西。

要从数据库生成实体,请考虑以下命令:

php doctrine.php orm:convert-mapping --from-database php ../library/Application/Entity

您还可以定义实体必须扩展的 namespace 和基类:--namespace=namespace 和 --extends=class。

Doctrine2 警告您将数据库转换为实体,因为并非所有内容都可以被自动检测或支持。例如,Doctrine2 默认不支持 ENUM 数据类型,因此转换数据库会引发错误。

最好在使用之前检查所有实体,尤其是关联。希望对你有帮助。

关于php - Zend 1.11 和 Doctrine 2 自动从现有数据库生成所需的一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6833885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com