码迷,mamicode.com
首页 > 其他好文 > 详细

Laravel - Eloquent 模型查询

时间:2020-04-27 19:46:22      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:use   space   table   php   null   namespace   closure   min   数据   

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 模型查询

标签:use   space   table   php   null   namespace   closure   min   数据   

原文地址:https://www.cnblogs.com/500m/p/12789074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!