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 相关文章推荐
php数字转汉字代码(算法)
Oct 08 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
php常用Stream函数集介绍
Jun 24 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
getJSON跨域SyntaxError问题分析
Aug 07 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
May 17 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 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
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js实现图片从左往右渐变切换效果的方法
2015/02/06 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Python正则表达式使用范例分享
2016/12/04 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
python join方法使用详解
2019/07/30 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
android面试问题与答案
2016/12/27 面试题
2014年企业党建工作总结
2014/12/18 职场文书
食品质检员岗位职责
2015/04/08 职场文书
vue+element ui实现锚点定位
2021/06/29 Vue.js