Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解


Posted in PHP onDecember 04, 2019

本文实例讲述了Laravel框架Eloquent ORM简介、模型建立及查询数据操作。分享给大家供大家参考,具体如下:

注:以下知识点可能有不全面之处,望见谅

NO.1Eloquent ORM简介

Laravel所自带的Eloquent ORM是一个优美、简洁的ActiveRecord实现,用来实现数据库操作
每个数据表都有与之相对应的“模型(Model)”用于和数据交互

NO.2模型的建立

最基础的模型代码如下:

namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
 //指定表名
 protected $table = 'student';
 //指定id
 protected $primaryKey = 'id';
}

将他创建于app目录下,命名为Student.php

NO.3查询数据

首先在查询之前,我先让你们看一下我的数据库

Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解

数据如上,然后查询

1.all方式

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
      $students = Student::all();
      dd($students);
 }
}

显示数据库里的所有数据

2.find方式

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
      $students = Student::find(1);
      dd($students);
 }
}

查找指定数据

3.findOrFail方式

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
      $students = Student::findOrFail(1);
      dd($students);
 }
}

如果他没查到指定的数据,那么他会报错,而find若是没有查到该函数,只会弹出一个null

4.查询构造器的使用

  • 1.get方式使用
namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
      $students = Student::get();
      dd($students);
 }
}

他会得到一个完整的数据信息,和原本的意义没有区别

  • 2.first方式使用

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::where('id','>',1)
     ->orderBy('age','desc')
     ->first();
     dd($student);
 }
}

当id大于一的时候,获取一个最大值的age

  • 3.where方式使用

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::where('id','>',1)
     ->get();
     dd($student);
 }
}
  • 4.chunk方式使用

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::chunck(2,function($student){
  var_dump($student);
 });
 }
}

5.聚合函数的使用

  • 1.count函数

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::count();
     dd($student);
 }
}
  • 2.max函数

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::max('age');
     dd($student);
 }
}
  • 3.min函数

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::min('age');
     dd($student);
 }
}
  • 4.avg函数

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::avg('age');
     dd($student);
 }
}
  • 5.sum函数

代码如下:

namespace App\Http\Controllers;
use App\Student;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
 public function orm1()
  {
     $student = Student::sum('age');
     dd($student);
 }
}

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
8个出色的WordPress SEO插件收集
Feb 26 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 #PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 #PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 #PHP
PHP实现发送微博消息功能完整示例
Dec 04 #PHP
PHP连续签到功能实现方法详解
Dec 04 #PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 #PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 #PHP
You might like
重置版宣传动画
2020/04/09 魔兽争霸
php过滤危险html代码
2008/08/18 PHP
php 动态多文件上传
2009/01/18 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP echo()函数讲解
2019/02/15 PHP
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
javascript 实现 原路返回
2015/01/21 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
学生会招新策划书
2014/02/14 职场文书
房产委托公证书
2014/04/08 职场文书
施工安全生产承诺书
2014/05/23 职场文书
竞选学委演讲稿
2014/09/13 职场文书
员工家属慰问信
2015/03/24 职场文书
起诉意见书范文
2015/05/19 职场文书
python lambda 表达式形式分析
2022/04/03 Python