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. 从零玩转Docker之docker-compose快捷部署中间件-dockercompose2

    title: 从零玩转Docker之docker-compose快捷部署中间件 date: 2023-04-04 17:35:18.035 updated: 2023-05-13 23:08:09.5 ...

  2. Windows 7更新失败的解决方法

    你好,1.在开始菜单中点击运行,→输入"services.msc"→找到"windows update"右击选择"停止":2.进入C:\wi ...

  3. Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--概述

    PdfiumViewer 是一个伟大的项目,可惜仓库现已经归档,This repository has been archived by the owner on Aug 2, 2019. It is ...

  4. linux中nginx下载安装部署

    反向代理 动静结合 负载均衡 下载 wget https://nginx.org/download/nginx-1.24.0.tar.gz 官网下载稳定版 解压 tar -zxvf nginx-1.2 ...

  5. 使用Mask R-CNN模型实现人体关键节点标注

    摘要:在本案例中,我们将展示如何对基础的Mask R-CNN进行扩展,完成人体关键节点标注的任务. 本文分享自华为云社区<使用Mask R-CNN模型实现人体关键节点标注>,作者: 运气男 ...

  6. Asp .Net Core 系列:集成 Ocelot+Consul实现网关、服务注册、服务发现

    什么是Ocelot? Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由.认证.限流.监控等. Ocelot是一个简单.灵活且功能强大的API网关,它 ...

  7. 【Redis】哈希类型 列表类型 集合类型 有序集合 慢查询 pipeline与事务 发布订阅 Bitmap位图 HyperLogLog

    目录 昨日回顾 今日内容 1 哈希类型 2 列表类型 3 集合类型 4 有序集合(zset) 5 慢查询 6 pipeline与事务 7 发布订阅 8 Bitmap位图 9 HyperLogLog 作 ...

  8. 神经网络优化篇:详解动量梯度下降法(Gradient descent with Momentum)

    动量梯度下降法 还有一种算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新的权重. 例如,如果 ...

  9. java中类的普通初始化块一定在静态初始化块后运行吗

    大部分教程都会告诉我们静态初始化块和静态字段总是在初始化块和普通类字段前运行,事实上也确实如此,直到我看到下面这样的代码: public class Test { static Test test = ...

  10. 文件描述符&文件句柄

    一.概念 1.1 文件描述符&文件描述符表 文件描述符(file descriptor, fd)是Linux系统中对已打开文件的一个抽象标记,所有I/O系统调用对已打开文件的操作都要用到它.这 ...