zoukankan      html  css  js  c++  java
  • Laravel

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

    1. 模型文件

    <?php

    namespace App;

    use IlluminateDatabaseEloquentModel;

    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);
        }
  • 相关阅读:
    数据库基础——EXISTS和IN
    C#基础——加密
    C#基础——派生和继承
    SQL Server——报表服务
    SQL Server——SQL Server Profiler
    UML基础——UML简介和历史
    C#基础——密码加密
    C#(ASP.NET)错误: 无法获取属性“0”的值: 对象为 null 或未定义 关键字 'user' 附近有语法错误。
    SQL Server——存储过程
    链表的声明及操作
  • 原文地址:https://www.cnblogs.com/500m/p/12789074.html
Copyright © 2011-2022 走看看