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你的验证码安全码?
Jan 02 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
php支付宝接口用法分析
Jan 04 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
PDO::setAttribute讲解
Jan 29 PHP
Laravel框架Blade模板简介及模板继承用法分析
Dec 03 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预定义常量
2006/12/25 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
php Session无效分析资料整理
2016/11/29 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
python生成随机图形验证码详解
2017/11/08 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
Python内置加密模块用法解析
2019/11/25 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
django rest framework 过滤时间操作
2020/07/12 Python
详解Python 函数参数的拆解
2020/09/02 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
UDP协议功能
2013/01/06 面试题
优秀学生干部推荐材料
2014/02/03 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
教师见习总结范文
2015/06/23 职场文书
我的收音机情缘
2022/04/05 无线电
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python