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);
        }
  • 相关阅读:
    Internet Explorer 11:不要再叫我IE
    C#汉字转拼音
    winfrom设置当前画面始终显示在最前面
    解决 winform打开网页 和WebBrowser打开链接360误报拦截的问题
    dataGridView使用指南系列一、回车换行或换列完美解决方案
    C#--WinForm项目主窗体设计
    C#后台解析 json 动态解析 通用(Dictionary)
    在windows下安装git中文版客户端并连接gitlab
    检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)
    关闭窗体后,进程仍然在运行的问题重现与解决
  • 原文地址:https://www.cnblogs.com/500m/p/12789074.html
Copyright © 2011-2022 走看看