Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解

吾爱主题 阅读:140 2021-09-22 15:17:00 评论:0

本文实例讲述了Laravel框架Eloquent ORM简介、模型建立及查询数据操作。分享给大家供大家参考,具体如下:

注:以下知识点可能有不全面之处,望见谅

NO.1Eloquent ORM简介

Laravel所自带的Eloquent ORM是一个优美、简洁的ActiveRecord实现,用来实现数据库操作
每个数据表都有与之相对应的“模型(Model)”用于和数据交互

NO.2模型的建立

最基础的模型代码如下:

?
1 2 3 4 5 6 7 8 9 namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model {   //指定表名   protected $table = 'student' ;   //指定id   protected $primaryKey = 'id' ; }

将他创建于app目录下,命名为Student.php

NO.3查询数据

首先在查询之前,我先让你们看一下我的数据库

数据如上,然后查询

1.all方式

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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方式

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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方式

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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方式使用
?
1 2 3 4 5 6 7 8 9 10 11 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方式使用

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 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方式使用

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 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方式使用

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 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函数

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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函数

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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函数

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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函数

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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函数

代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 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程序设计有所帮助。

原文链接:https://blog.csdn.net/weixin_44596681/article/details/89083478

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容