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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
如何判断php数组的维度
Jun 10 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
php 如何获取文件的后缀名
Jun 05 PHP
PHP session会话操作技巧小结
Sep 27 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 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购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
自己的js工具 Event封装
2009/08/21 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
canvas知识总结
2017/01/25 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
JSON.stringify()方法讲解
2019/01/31 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
10款最好的Web开发的 Python 框架
2015/03/18 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
优秀教师先进事迹
2014/01/22 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
求职毕业生自荐书
2014/02/08 职场文书
道路交通安全实施方案
2014/03/12 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
被委托人身份证明
2015/08/07 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书