我打算用doctrine来编写一个用codeigniter构建的应用程序模块。
我有一个非常基本的问题: 假设我有一个名为“user”的表,使用doctrine generate-models from db,3个类生成BaseUser.php,User.php和UserTable.php。现在我在示例中看到他们使用User类straigtaway。我应该这样做吗?我需要用户对象的其他业务功能。所以我应该创建一个codeigniter模型user_model,然后在其中使用User类(聚合)或以某种方式扩展用户类(我不知道如何在user_model扩展模型时完成此操作)
对这一点感到困惑,无法找到相同的文献。 任何帮助将不胜感激。
提前感谢,
答案 0 :(得分:1)
对于任何有兴趣的人 - 我已经在我的博客上发布了一个项目启动器 - 开发了以下技术:
此项目启动器的一些功能是: - CodeIgniter模型已被Doctrine Records取代 - Doctrine作为插件加载到CI中 - 过滤器前后的RoR类型.... - 在执行时自动处理每个操作的Doctrine事务(ATOMIC db updates)
基于角色的基本安全性(我认为Redux也可以在那里?) 只需解压缩,连接database.php配置文件和中提琴....您可以开始编写布局,视图和模型。可能需要解决一些问题 - 但要享受!
希望有所帮助
答案 1 :(得分:0)
查看此info on Doctrine_Table class。
到3个生成的文件:
的 BaseXXX.php:强>
保存模型的定义,以便Doctrine能够处理数据库上的操作。该类告诉ORM哪些colums可用,它们的类型,推荐的函数(如Timestampable,...)等等。您不应将自己的数据放入此文件中,因为从数据库重新创建模型时它将被覆盖。
<强> XXX.php:强>
你的实际模特。这不会在每个新一代流程中重新创建,这就是您保留大部分代码。如果必须,您可以覆盖BaseXXX.php的功能。
<强> XXXTable.php:强>
从顶部检查我的链接,这使您可以访问表本身。就个人而言,我经常不使用它,因为我将大部分代码放入XXX.php。
当然,您可以创建新类并在XXX.php文件中使用它们。为了实际处理数据(保存,读取......),您需要从Doctrine的类中连接(扩展)的类。
编辑:还可以通过从Doctrine_Table类扩展来查看更多信息上的this