Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库进行交互。每个数据库表都有一个对应的「模型」可用来跟数据表进行交互。你可以通过模型查找数据表内的数据,以及将记录添加到数据表中。

1. 模型文件

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
    protected $table = 'student';
    protected $primaryKey = 'id';
}

2. 控制器文件

public function ormQuery()
    {
            # 1.1 查询所有
            //    $ret = Student::all();
        
            # 1.2 查询主键,没找到返回null
            //    $ret = Student::find(1);
            # 1.3 根据主键查找,如果没查到就抛出异常
            // $ret = Student::findOrFail(1);
        # ______________________________________________________________________
            # 2.Eloquent 的 all 方法会返回在模型数据表中的所有结果。由于每个 Eloquent 模型都可以当作一个 查询构造器,所以你可以在查找中增加规则,然后使用 get 方法来获取结果:
        
            # 2.1  和 all()一样都是返回所有数据
            // $ret = Student::get();  
            # 2.2  获取id为1的数据
            // $ret = Student::where('id',1)->get(); 
            # 2.3 获取id>1 的数据 按照年龄进行降序排列
            // $ret = Student::where('id','>',1)->orderBy('age','desc')->get(); 
            # 2.4 获取id>1 的数据 按照年龄进行降序排列 的 第一个
            // $ret = Student::where('id','>',1)->orderBy('age','desc')->first(); 
         # ______________________________________________________________________
       
            # 3. chunk 分块结果 . 如果你需要处理上千笔 Eloquent 查找结果,则可以使用 chunk 命令。chunk 方法将会获取一个  Eloquent 模型的「分块」,并将它们送到指定的 闭包 (Closure) 中进行处理。当你在处理大量结果时,使用 chunk 方法可节省内存:
            
            /**
             * @param 1 : 第一个参数表示每次「分块」时你希望接收的数据数量
             * @param 2 : 闭包则作为第二个参数传递,它将会在每次从数据取出分块时被调用。
             */
            // Student::chunk(2,function($req){
            //   dump($req);
            // });
         # ______________________________________________________________________
            # 4.聚合函数
            
            # 4.1 查询总数
            // $ret = Student::count();
            # 4.2 比较得出最大值而非计算
            // $ret = Student::max('age');   
            $ret = Student::where('id','>',1)->max('age');   
            
            dump($ret);
    }

Laravel - Eloquent 模型查询的更多相关文章

  1. laravel Eloquent 模型(也就是我本时说的Model)

    laravel的 Eloquent 模型其实就是我们平时说的MVC里Model,只是换了个名字而已~ 1)Eloquent 是啥? Eloquent 本质就一个查询构建器(laravel里叫查询构建器 ...

  2. Laravel Eloquent 数据查询结果中日期的格式化

    两种情况: 使用 Model 的查询 例如: $item = App\Models\Apple::first(); $date = $item->created_at->format('Y ...

  3. laravel Eloquent 查询数据库判断获取的内容是否为空

    原文地址:https://www.cnblogs.com/love-snow/articles/7205338.html 在使用 Laravel Eloquent 模型时,我们要判断取出的结果集是否为 ...

  4. Laravel Eloquent ORM

    Eloquent ORM 简介 基本用法 集体赋值 插入.更新.删除 软删除 时间戳 查询范围 关系 查询关系 预先加载 插入相关模型 触发父模型时间戳 与数据透视表工作 集合 访问器和调整器 日期调 ...

  5. 判断Laravel Eloquent获取数据结果集是否为空

    在使用Laravel Eloquent模型时,我们可能要判断取出的结果集是否为空,但我们发现直接使用is_null或empty是无法判段它结果集是否为空的. var_dump之后我们很容易发现,即使取 ...

  6. Laravel Eloquent 判断取出的结果集是否为空

    在使用Laravel Eloquent模型时,我们可能要判断取出的结果集是否为空,但我们发现直接使用is_null或empty是无法判段它结果集是否为空的. var_dump之后我们很容易发现,即使取 ...

  7. 【Laravel】为Eloquent 模型设置全局作用域和局部作用域进行查询

    全局作用域 所谓「全局作用域」,指的是预置过滤器在注册该「全局作用域」的模型类的所有查询中生效,不需要指定任何额外条件. 以 User 模型类为例,我们在系统中可能只想针对已经验证过邮箱的用户进行操作 ...

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

    Eloquent是什么 Eloquent 是一个 ORM,全称为 Object Relational Mapping,翻译为 "对象关系映射"(如果只把它当成 Database A ...

  9. 使用laravel的Eloquent模型获取数据库的指定列

    使用laravel的Eloquent模型获取数据库的指定列   使用Laravel的ORM——Eloquent时,时常遇到的一个操作是取模型中的其中一些属性,对应的就是在数据库中取表的特定列. 如果使 ...

  10. laravel为模型中所有查询统一添加WHERE条件

    在使用laravel开发web系统的过程,需要在model处为该模型统一添加一个条件或者多个条件,研究了一个laravel的模型类,发现model中有个方法是构建查询的,方法如下: /** * Reg ...

随机推荐

  1. Java 集合(一)List

    在 Java 中,主要存在以下三种类型的集合:Set.List 和 Map,按照更加粗略的划分,可以分为:Collection 和 Map,这些类型的继承关系如下图所示: Collection 是集合 ...

  2. 【MySql】数据库_MySql基础

    yum install mysql mysql -u root -p 创建数据库 create database 数据库名; 查看所有数据仓库 show databases; 删除数据库 drop d ...

  3. 记一次kubernetes获取internal Ip错误流程

    本文分享自华为云社区<记一次kubernetes获取internal Ip错误流程>,作者:张俭. 偶尔也回首一下处理的棘手问题吧.问题的现象是,通过kubernetes get node ...

  4. 云图说|ModelArts开发环境,让AI开发、探索、教学更简单

    摘要:ModelArts开发环境,以云原生的资源使用和开发工具链的集成,目标为不同类型AI开发.探索.教学用户. 本文分享自华为云社区<[云图说]| 第280期 ModelArts开发环境,让A ...

  5. 动手实践丨基于ModelAtrs使用A2C算法制作登月器着陆小游戏

    摘要:在本案例中,我们将展示如何基于A2C算法,训练一个LunarLander小游戏. 本文分享自华为云社区<使用A2C算法控制登月器着陆>,作者:HWCloudAI . LunarLan ...

  6. 基于KubeEdge的边缘节点分组管理设计与实现

    摘要:KubeEdge 1.11版本提供了"边缘节点分组管理"新特性,抽象出了跨地域的应用部署模型. 本文分享自华为云社区<基于KubeEdge的边缘节点分组管理设计与实现& ...

  7. 游戏“外挂”?—— AI生成游戏最强攻略

    作为一名快乐的肥宅,玩游戏是居家必备,无论是王者荣耀.吃鸡.原神这些大热游戏,还是跳一跳.合成大西瓜.2048.这些风靡一时得小游戏,咱都有涉及.但是为了成为一个"头号玩家",我总 ...

  8. Solon Aop 特色开发(5)切面与环绕拦截

    Solon,更小.更快.更自由!本系列专门介绍Solon Aop方面的特色: <Solon Aop 特色开发(1)注入或手动获取配置> <Solon Aop 特色开发(2)注入或手动 ...

  9. module 'numpy' has no attribute 'int'.

    原因:np.int 在 NumPy 1.20 中已弃用,在 NumPy 1.24 中已删除 AttributeError: module 'numpy' has no attribute 'int'. ...

  10. 备份批处理文件 bat 生成 date 取年时,只取到周

    备份数据库文件时,发现MySQL备份生成的文件名为 [vipsoft_周三],发现是系统的日期格式问题.需调整日期格式,生成 [vipsoft_20220601.sql] mysqldump -uro ...