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 相关文章推荐
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 PHP
php 数组的指针操作实现代码
Feb 08 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
destoon官方标签大全
Jun 20 PHP
CentOS安装php v8js教程
Feb 26 PHP
PHP实现根据图片色界在不同位置加水印的方法
Aug 08 PHP
php实现可运算的验证码
Nov 10 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
php7新特性的理解和比较总结
Apr 14 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
php实现统计IP数及在线人数的示例代码
Jul 22 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 删除无限级目录与文件代码共享
2008/11/22 PHP
php 获取完整url地址
2008/12/20 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
php文件上传简单实现方法
2015/01/24 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
php实现登录页面的简单实例
2019/09/29 PHP
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
javascript 继承学习心得总结
2016/03/17 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
Python中datetime模块参考手册
2017/01/13 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
韩国现代百货官网:Hmall
2018/03/21 全球购物
实习教师自我鉴定
2013/12/09 职场文书
运动会方阵解说词
2014/02/12 职场文书
节电标语大全
2014/06/23 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
思品教学工作总结
2015/08/10 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书