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 相关文章推荐
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php mysql 判断update之后是否更新了的方法
Jan 10 PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 PHP
php中explode与split的区别介绍
Oct 03 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
php数组合并的二种方法
Mar 21 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
Yii框架的布局文件实例分析
Sep 04 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/06/28 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
jquery创建div 实现代码
2009/04/27 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
车工岗位职责
2013/11/26 职场文书
小学信息技术教学反思
2014/02/10 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
幼儿园安全责任书
2014/04/14 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
雷锋观后感
2015/06/10 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js