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 相关文章推荐
discuz安全提问算法
Jun 06 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
深入apache host的配置详解
Jun 09 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
smarty中post用法实例
Nov 28 PHP
PHP实现递归无限级分类
Oct 22 PHP
php实现网站留言板功能
Nov 04 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
PHP脚本自动识别验证码查询汽车违章
Dec 20 PHP
php生成微信红包数组的方法
Sep 05 PHP
漂亮的thinkphp 跳转页封装示例
Oct 16 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 xml-rpc远程调用
2008/12/19 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
17个Python小技巧分享
2015/01/23 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
django 修改server端口号的方法
2018/05/14 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
ORACLE第二个十问
2013/12/14 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
房地产销售员的自我评价分享
2013/12/04 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
Python OpenCV超详细讲解基本功能
2022/04/02 Python