首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

laravel 模型Eloquent ORM 查询

up前面玩了 DB 查询,但是laravel开发基本不怎么使用db方式查询,应该有更强大的 模型 Model 介绍 Laravel 的 Eloquent ORM 提供了一个漂亮、简洁的 ActiveRecord...每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表中的数据,以及在数据表中插入新记录。 在开始之前,请确保在 config/database.php 中配置数据库连接。...laravel 的 Model 使用先进的 Eloquent ORM 但也有优缺点 优点是数据库的操作变的简单安全 缺点也明显数据库的操作变的缓慢笨重 Eloquent ORM 作为 laravel 中亮点...但是却报错了我们看到model生成的sql 莫名其妙拼接了一个 s 这里我百度了一下 artisan 生成的model 若没有特别指定,laravel系统会默认自动对应名称为「Eloquent类名称的小写复数形态...// } 以后的模型不要直接由 Eloquent 派生,改为由 BaseModel 派生,就不用特殊指定表名,表名与模型名称直接一致,也不再驼峰呀什么的了。

4.4K10

Laravel Eloquent 模型关联关系(下)

在前面两篇教程中,学院君陆续给大家介绍了 Eloquent 模型类支持的七种关联关系,通过底层提供的关联方法,我们可以快速实现模型间的关联,并且进行关联查询。...统计关联模型 我们还可以通过 Eloquent 提供的 withCount 方法在不加载关联模型的情况下统计关联结果的数量。...>orderBy('created_at', 'desc'); }]); 关联插入与更新 一对多关联记录插入 新增关联模型的时候,可以在父模型上调用相应方法直接插入记录到数据库,这样做的好处是不需要指定关联模型与父模型的外键关联字段值...(31); $comment->content = 'Laravel学院致力于提供优质Laravel中文学习资源'; $comment->save(); 再次查看评论模型及对应文章模型数据,可以看到文章模型的更新事件和评论模型的更新时间已经一致了...希望你看完学院君的这一系列教程可以了解并完全掌握 Eloquent 模型的定义和使用,有什么问题,欢迎随时与我交流。

19.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel Eloquent 模型关联关系详解(上)

    到目前为止,我们介绍的所有 Eloquent 模型操作都是针对单表的,接下来我们将花三篇左右的篇幅来给大家介绍如何在 Eloquent 模型类中建立模型之间的各种关联关系,以及如何实现关联查询和更新。...你可能注意到了我们在定义关联关系时,仅仅指定了模型类名,并没有指定通过哪些数据表字段建立关联,这并不是说 Laravel 神通广大,能知过去未来之事,而是因为 Eloquent 对此做了默认的约定。...= User::findOrFail(1); $posts = $user->posts; 与 hasOne 返回的是单个模型实例不一样,hasMany 返回的是模型类集合: Eloquent 底层约定...建立相对的关联关系 与一对一一样,我们可以在文章模型中建立与用户模型之间的相对关联关系,而且这种使用场景很普遍,比如在文章详细页或列表页显示文章作者信息。...接下来,我们在 Post 模型类中定义其与 Tags 模型类的关联关系,通过 Eloquent 提供的 belongsToMany 方法来实现: public function tags() {

    10K40

    laravel 模型Eloquent ORM 添加编辑删除

    因为在模型默认不允许进行批量赋值需要先定义允许 create 方法插入到数据库的字段,就是给 $fillable 属性定义允许赋值的字段 up 先在模型中定义 $fillable 属性 /**...自动都变成了插入或者修改的时间了,这就是使用模型的好处一大好处 删除 但是最后的这个 deleted_at 是空的,这个字段应该怎么用呢?...当时我希望能有一个恢复删除的功能比如说回收站,laravel 的模型为我们提供了很方便的软删除功能 要启用软删除首先数据表需要有 deleted_at 字段 之前玩迁移的时候简单的说了下创建迁移的时候调用...php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\...Laravel 的 数据库迁移 有创建这个字段的方法 现在,当你在模型实例上使用 delete 方法, 当前日期时间会写入 deleted_at 字段。

    1.7K21

    【Laravel系列4.4】模型Eloquent ORM的使用(二)

    模型Eloquent ORM的使用(二) 对于模型的探索我们还将继续。上篇文章中,只是简单地通过模型操作了一下数据库,并且学习了一下关联操作的知识。...与路由绑定 对于一些获取单个信息的操作来说,模型是可以直接绑定到路由上的,比如下面这样: Route::get('model/test/bindroute/{mTest}', function(\App...\Models\MTest $mTest){ dump($mTest); dump($mTest->name); }); 通过在回调函数中注入模型对象,就可以实现路由与模型的绑定。...在所有模型都要继承的 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 类中,我们很快就能发现一个 query() 静态方法。...参考文档: https://learnku.com/docs/laravel/8.x/eloquent/9406

    2.8K20

    【Laravel系列4.3】模型Eloquent ORM的使用(一)

    this->child->{模型Eloquent ORM的使用(一) 先来说说 ORM 是什么,不知道有没有不清楚这个概念的小伙伴,反正这里就一道科普一下算了。...其实,Laravel 中的 Eloquent ORM 也是 Active Record 的实现,这也是现在 ORM 的主流。...通过前两篇文章的铺垫,我们很容易就能操作 Laravel 中的模型,但是,真正要改变的是你看待这种操作数据库的方式。要把数据库里的数据想像成是编程语言中的对象,这才是 ORM 最主要的内容。...对于 Laravel 中标准的 Eloquent 模型类来说,每个表都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据的创建时间和修改时间...下篇文章我们还将继续进行模型的学习以及整个模型的源码分析。 参考文档: https://learnku.com/docs/laravel/8.x/eloquent/9406

    8.9K20

    基于独立的 Laravel Eloquent 组件编写 ORM 模型类

    模型类负责与数据库进行交互,这里的模型指的是数据表的模型,一个模型类对应一张数据表,数据表的字段会映射为模型类的属性,我们可以通过模型类提供的方法实现对应数据表记录的增删改查,这样一来,我们就将原来面向过程的数据库操作转化为面向对象风格的编程...下载 Eloquent ORM 相关扩展包 Eloquent ORM 作为 Laravel 框架自带的 ORM 实现,还可以在 Laravel 框架之外作为独立的 ORM 组件使用。...Eloquent 提供的模型事件功能,还可以下载 Laravel 提供的独立事件扩展包: composer require illuminate/events 上述扩展包下载完成后,就可以在博客项目根目录下的...模型类全局可用(为了编写 Eloquent 模型类,如果只是使用 Laravel 提供的数据库查询构建器功能,则不需要这些操作)。...模型实例可能包含多个 Post 模型实例(一对多关联),这种关联关系与数据表记录的关联关系对应,具体细节可以参考 Eloquent 官方文档,这里不详细展开了。

    2K10

    深入理解 Laravel Eloquent(三)——模型间关系(关联)

    在本篇文章中,我将跟大家一起学习 Eloquent 中最复杂也是最难理解的部分——模型间关系。...中文文档: http://laravel-china.org/docs/eloquent#relationships 下面我们开始一个一个地学习。...其他关系 Eloquent 还提供 “远层一对多关联”、“多态关联” 和 “多态的多对多关联” 这另外三种用法,经过上面的学习,我们已经掌握了 Eloquent 模型间关系的基本概念和使用方法,剩下的几种不常用的方法就留到我们用到的时候再自己探索吧...我们可以使用一个重要的特性,关系预载入:http://laravel-china.org/docs/eloquent#eager-loading 直接上代码: $users = User::with('...---- 至此,深入理解 Laravel Eloquent 系列文章到此结束。推荐继续了解 软删除 、转换成数组/JSON。 END

    2.7K30

    通过 Laravel Eloquent 模型实现批量赋值和软删除

    在上一篇教程中,我们基于 Eloquent 模型实现了对数据表记录的增删改查操作,今天我们在此基础上介绍两个 Eloquent 模型提供的高级功能 —— 批量赋值和软删除。...每次这么做得崩溃掉,到时候我们的控制器类里面可能会遍布这种设置代码,Laravel 号称的优雅就是打脸了。所以这个时候,批量赋值就粉墨登场了,批量赋值就是为我们解决这个问题的。...作为一个成熟的 ORM 框架,Eloquent 在设计之初肯定不会没有考虑到这样的问题,实际上,我们可以借助模型类中的白名单属性或黑名单属性来解决这个困扰。...所谓白名单属性就是该属性中指定的字段才能应用批量赋值,不在白名单中的属性会被忽略;与之相对的,黑名单属性指定的字段不会应用批量赋值,不在黑名单中的属性则会应用批量赋值。...实现原理 Eloquent 模型类为我们提供了「软删除」功能的支持。这就意味着,在 Laravel 中,我们不需要编写任何额外代码就可以实现对数据库记录的「软删除」。

    2.5K10

    需要掌握的 Laravel Eloquent 搜索技术

    本文同步至个人博客 需要掌握的 Laravel Eloquent 搜索技术 ,转载请注明出处。 当我们的应用程序访问较少时(例如在项目初期阶段),直接进行项目编码就可以解决大多数问题。...项目中的搜索功能也是如此,没必要在一开始就引入完整的第三方类库进行搜索功能支持。大多数情况下使用 Eloquent 的查询功能就可以完成基本的搜索处理。 预热 搜索功能是应用的重要组成模块。...本文将带领大家学习 MySQL 和 Eloquent 在搜索模块中设计的相关技术。 基本的 Eloquent Where 查询 作为首个要讲解的搜索功能,我们先不涉及新知识点。...它的工作原理,类似 &&(与查询) 运算符,当所有条件都为 true 时,返回结果集: <?...依据单词发音进行模糊匹配 继续探讨最后一个主题,当用户输入的查询表达式包含错误的单词拼写时,该如何进行搜索呢?查询与给定的表达式有类似发音的语句是个不错的主意。

    3.5K10

    需要掌握的 Laravel Eloquent 搜索技术

    大多数情况下使用 Eloquent 的查询功能就可以完成基本的搜索处理。 预热 搜索功能是应用的重要组成模块。优秀的设计,可以帮助我们的用户简单快速的检索想要的信息。...本文将带领大家学习 MySQL 和 Eloquent 在搜索模块中设计的相关技术。 基本的 Eloquent Where 查询 作为首个要讲解的搜索功能,我们先不涉及新知识点。...它的工作原理,类似 &&(与查询) 运算符,当所有条件都为 true 时,返回结果集: Laravel 中也可以轻松执行对 JSON 数据的查询,这得益于 Laravel 良好的 JSON 支持。 不过在深入研究之前需要注意的一点是:谨记 JSON 列的存储是 区分大小写 的。...依据单词发音进行模糊匹配 继续探讨最后一个主题,当用户输入的查询表达式包含错误的单词拼写时,该如何进行搜索呢?查询与给定的表达式有类似发音的语句是个不错的主意。

    4.3K20

    在 Laravel Eloquent 模型类中使用作用域进行查询

    问题引出 在通过 Eloquent 模型实现增删改查这篇教程中,我们已经学习了如何在 Eloquent 模型类中进行各种查询,但是这些查询大多需要手动调用查询构建器提供的各种方法来实现。...如果有一些查询需要在多个地方调用,那么在每个地方都要编写同样的代码,有没有什么办法对这种场景下的查询代码进行优化呢? Eloquent 模型类提供的「Scope」功能就可以帮我们实现这种优化。...接下来,我们就来演示如何在 Eloquent 模型类上使用「作用域」进行查询。...所谓「局部作用域」,指的是预置过滤器在对应模型类的指定查询中生效,与「全局作用域」不同,「局部作用域」需要额外指定才能生效,但是相应的,也更加灵活,可以适用于不同场景。...`deleted_at` is null 动态作用域的调用和移除方式和局部作用域一样。 本系列教程首发在Laravel学院(laravelacademy.org)

    2.5K20

    在 Laravel Eloquent 模型类zhon设置访问器和修改器

    问题引出 前面两篇教程我们陆续为大家介绍了模型类的基本增删改查操作,以及如何通过模型类进行批量赋值和软删除,今天我们继续为大家介绍模型类的高级特性 —— 访问器和修改器。...我们当然可以通过上述访问器和修改器完成这种操作,但是 Laravel 提供了更加快捷的方法,对于一个在数据库中类型为 JSON 或 TEXT 的字段,我们可以在模型类中将字段对应属性类型转化设置为数组,...其它操作 Eloquent 模型类还为我们提供了诸如日期修改器、其它属性转化等功能,但是没有高频应用场景,我一般就是用默认日期设置,至于除数组/JSON之外的其它属性转化可以通过良好的数据库设计和业务逻辑来实现...不过确实有这方面需求的同学可以自行查看官方文档了解明细,这里就不一一展开了。 下一篇,我们将基于 Eloquent 模型类实现一些更高阶的功能 —— 查询作用域和模型事件,敬请期待。...本系列教程首发在Laravel学院(laravelacademy.org)

    1.4K30

    PHP-web框架Laravel-Eloquent ORM(一)

    Laravel是一种基于PHP语言的Web开发框架,其中的Eloquent ORM功能为开发者提供了便捷的对象关系映射(ORM)功能,可用于对数据库进行CRUD操作,同时也可以轻松地定义模型关联和查询。...下一、模型定义Eloquent ORM是Laravel框架中的一个基于Active Record模式的ORM,通过模型与数据库表进行映射,实现数据的增删改查操作。...在Laravel框架中,每一个Eloquent ORM模型都对应着一个数据库表,通过继承Illuminate\Database\Eloquent\Model类来定义模型。下面是一个示例:模型,并指定了该模型对应的数据库表为users表。...二、增删改查操作Laravel框架中的Eloquent ORM提供了一系列方便的CRUD操作方法,如下:查询数据查询单个模型:$user = User::find($id);查询多个模型:$users

    87951

    Laravel学习笔记(四)——模型,更安全的数据存取

    而在Laravel中的模型就相当于一个功能完善的数据库Helper类,不需要用户自己写,只要掌握基本用法就能很快速方便的对数据库进行操作,哪怕你一点不懂SQL语句。...看了接下来的Laravel模型的使用之后你就会爱上Laravel的Eloquent ORM模型,这也是我直接介绍模型而不讲解其他数据库操作的原因。...Laravel 数据库配置 要想使用模型,第一个要设置的当然是数据库信息。...Eloquent ORM Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库交互。每个数据库表都有一个对应的「模型」用来与该表交互。...,你不需要考虑数据库连接与断开,也不需要知道SQL语句,你只需要按照Eloquent ORM提供的方法进行对应的操作即可。

    1.7K00

    Laravel学习笔记(四)——模型,更安全的数据存取

    而在Laravel中的模型就相当于一个功能完善的数据库Helper类,不需要用户自己写,只要掌握基本用法就能很快速方便的对数据库进行操作,哪怕你一点不懂SQL语句。...看了接下来的Laravel模型的使用之后你就会爱上Laravel的Eloquent ORM模型,这也是我直接介绍模型而不讲解其他数据库操作的原因。...Laravel 数据库配置 要想使用模型,第一个要设置的当然是数据库信息。...Eloquent ORM Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库交互。每个数据库表都有一个对应的「模型」用来与该表交互。...,你不需要考虑数据库连接与断开,也不需要知道SQL语句,你只需要按照Eloquent ORM提供的方法进行对应的操作即可。

    2.1K00
    领券