A drop-in Doctrine ORM 2 implementation for Laravel 5+
$scientist = new Scientist(
'Albert',
'Einstein'
);
$scientist->addTheory(
new Theory('Theory of relativity')
);
EntityManager::persist($scientist);
EntityManager::flush();
Version | Supported Laravel Versions |
---|---|
~1.5 | 6.x |
~1.6 | 7.x |
~1.7 | 8.x |
Require this package
composer require laravel-doctrine/orm doctrine/inflector:"^1.4|^2.0"
Because of the auto package discovery feature Laravel has, the ServiceProvider and Facades are automatically registered.
To publish the config use:
php artisan vendor:publish --tag="config" --provider="LaravelDoctrine\ORM\DoctrineServiceProvider"
This package is licensed under the MIT license.
对象关系映射 (Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与 关系数据库 存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的 元数据 ,将程序中的对象自动 持久化 到 关系数据库 中。那么,到底如何实现 持久化 呢?一种简单的方案是采用 硬编码 方式,为每一种可能的数据库访问操作提供单独的方法。这种方案存在以下不足:1.
1、ORM:对象关系映射 A . 简单:ORM以最基本的形式建模数据。比如ORM会将MySQL的一张表映射成一个Java类(模型),表的字段就是这个类的成员变量 B . 精确:ORM使所有的MySQL数据表都按照统一的标准精确地映射成java类,使系统在代码层面保持准确统一 C .易懂:ORM使数据库结构文档化。比如MySQL数据库就被ORM转换为了java程序员可以读懂的java类,java程序
什么是“持久化” 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 什么是 “持久层” 持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。 什么是ORM
问题内容: 我正在创建一个Android应用,并且需要保留一个。我刚刚开始使用Realm ORM ,因为它支持一对一和一对多的枚举和列表。我还找到了解决字符串列表的方法(即,我必须创建一个封装字符串的StringWrapper类。但是,从文档中我了解,列表并不存在像这样的简单方法。因此,我正在寻找持久化地图的最佳方法。我目前的想法是用封装了(以前的地图关键字)和的对象列表替换我的地图。类似于。是否
问题内容: 我在一个Android项目中使用ORMLite,并且我不想使用扩展活动,因为我是在AsyncTask上将值插入数据库中。 在文档中说: “如果您不想扩展和其他基类,那么您将需要复制它们的功能。您需要在代码的开头进行调用,保存帮助程序并根据需要使用它,然后在你完成了。” 它还说要在中添加数据库帮助程序类。所以我不确定我在做什么错。 我正在使用一个为我的数据层调用的类,如下所示: 我正在使
问题内容: 我将RoboSpice与Spring for Android结合使用,并希望使用OrmLite保留对象的JSON数组。GSON用于JSON编组。使用默认缓存,一切都会按预期进行。但是OrmLite似乎不喜欢对象数组。 这是JSON的简化版本: 我想在以下对象中坚持这一点: 基于RoboSpice OrmLite示例,我创建了以下GsonSpringAndroidSpiceService
问题内容: 我有以下表格- 对于这些表,关联的Dao和DaoImpl如下 数据库助手如下: 现在,当我尝试致电- 它错误并显示以下错误: 现在,如果我在A中没有foreign键-即如果A不包含 公共B b ,那么它可以正常工作。我在这里缺少什么吗? 提前非常感谢您。 问题答案: 我怀疑在异常堆栈跟踪的末尾有您丢失的原因消息。例如,如果我在上面重复了您的示例,则会得到: 因为有一个class的外部字
问题内容: 如果我使用的是JPA2之类的ORM-我的实体已映射到数据库,那么我是否仍应使用DAO?似乎要增加很多开销。 例如,我将需要维护三个额外的程序包: 一个指定我的域对象的对象(它几乎映射了我的Entity对象): 一种包含指定我的DAO方法的接口 其中包含实现我的DAO的会话bean 现在,每当我需要执行新的CRUD操作时,都会增加很多额外的负担。 但是,从DAO中我看到的好处是: 您可以
问题内容: 我在GoRM ORM中使用Go 。我有以下结构。关系很简单。一个城镇有多个地方,一个地方属于一个城镇。 现在,我想查询所有地方,并与他们所有的字段一起了解相应城镇的信息。这是我的代码: 我的样本数据库具有以下数据: 我 收到 这个: 但是我 希望 收到这样的信息(两个地方都属于同一个城镇): 我该如何查询?我尝试使用,并没有成功(可能是错误的方式)。我无法获得预期的结果。 问题答案:
问题内容: 我正在使用felixge的客户端。我没有使用ORM。 我正在用Vows进行测试,并且希望能够使用Sinon来模拟我的数据库。由于除之外我本身还没有DAL ,因此我不确定如何执行此操作。我的模型大多是带有很多吸气剂的简单CRUD。 关于如何做到这一点的任何想法? 问题答案: 使用sinon,您可以在整个模块上放置一个模拟或存根。例如,假设模块具有一个功能: ,是您期望的输入。是您期望的输
问题内容: 有没有办法用Laravel的ELOQUENT ORM来“限制”结果? 和雄辩? 问题答案: 创建一个扩展口才的游戏模型,并使用此模型: 这里将获得30条记录,这里将抵消30条记录。 在最新的Laravel版本中,您还可以使用: