admin 管理员组

文章数量: 887007

eloquent ORM 入门教程

Laravel Eloquent ORM组件让数据库交互变的极其简单,在今天这个教程中我们将学习如何使用它,主要搞定以下内容:

  • 基本的CRUD方法
  • 建立一对一关系
  • 建立一对多关系
  • 建立多对多关系

Eloquent如何工作?

Eloquent Orm使用ActiveRecord模式与数据库进行交互,这意味着在你的MVC框架中所有的模型都对应着数据库中的某个表。

Bear模型对应着数据库Bears表,模型与表的这种对应关系可以使我们非常方便的查询数据库。

举个例子来说,如果你想从Bear模型中获得全部的bears,你只需简单的使用Bear:all()方法,它会生成真实的SQL语句并从数据库查询全部的结果集

下面是一些简单的示例:

介绍                           方法

查询所有的熊               Bear::all()

查询一条记录               Bear::find(id)

删除一条记录               Bear::delete(id)

So easy! 非常的简单!(神奇的是所有的模型都具有以上的方法)过一会我们就会用到它们。

示例应用程序

让我们一起来创建一个示例应用程序,首先要了解一下以下内容:

熊: 这个世界上有非常多的熊,他们有不同的种类(北极熊、灰熊……)、不同的体重甚至不同的危险等级。

鱼:每一只熊只能吃一条鱼(至少在这个例子中是这样)熊和鱼的这种关系我们称之为一对一关系

树:任何一只熊都非常喜欢爬树,他们会经常光顾很多棵树,熊和树的这种关系我们称之为一对多关系

野餐:熊可以搭帮结伙的一起野餐,这种关系是多对多关系

安装Laravel

开始使用Eloquent我们需要先设置数据库与应用程序,下边是简单的流程

  • 安装Laravel: composer install –prefer-dist
  • 修改我们的数据库配置app/config/database.php
  • 使用artisan创建数据库迁移
  • 创建Eloquent模型
  • 填充测试数据

作者说前两项都非常的简单就不浪费时间去说了,可是我却在安装Laravel时就浪费了大把时间……

创建数据迁移

我们需要创建三个数据表:bears,fish,picnics 关于数据迁移的更多内容请参考migrations

创建Bears的数据迁移:

1 php artisan migrate:make create_bears_table --create=bears

create_bears_table 会转化为类名CreateBearsTable,–create后边的参数指表名

该命令执行之后会在app/database/migrations中生成一个文件create_bears-table.PHP(该文件会有前缀)修改该文件增加一些列:

1 2 3 4 5 6 7 8 9 10 Schema::create( 'bears' , function (Blueprint $table ) {      $table ->increments( 'id' );        $table ->string( 'name' );      $table ->string( 'type' );      $table ->integer( 'danger_level' );        $table ->timestamps(); });

默认情况下,这些数据迁移都会包含自增列id,它也会同时创建时间戳用来记录创建与修改时间(created_at,updated_at),当修改记录时updated_at字段会自动更新

创建Fish的数据迁移

1 2 3 4 5 6 7 8 9 10 php artisan migrate:make create_fish_table --create=fish          Schema::create( 'fish' , function (Blueprint $table )          {              $table ->increments( 'id' );                $table ->integer( 'weight' );              $table ->integer( 'bear_id' );                $table ->timestamps();          });

在Eloquent模型中可以重新指定表的名称,起个有意义的表名(除非你想给自己找麻烦)

创建Tree的数据迁移

1 2 3 4 5 6 7 8 9 10 11 php artisan migrate:make create_trees_table --create=trees          Schema::create( 'trees' , function (Blueprint $table )          {              $table ->increments( 'id' );                $table ->string( 'type' );              $table ->integer( 'age' );              $table ->integer( 'bear_id' );                $table ->timestamps();          });

创建Picnic的数据迁移

1 2 3 4 5 6 7 8 9 10 php artisan migrate:make create_picnics_table --create=picnics          Schema::create( 'picnics' , function (Blueprint $table )          {              $table ->increments( 'id' );                $table ->string( 'name' );              $table ->integer( 'taste_level' ); //好吃的程度                $table ->timestamps();          });

创建关联表

我们需要将bears与picnic两者的关系用一个新表来保存用以定义多对多关系

1 2 3 4 5 6 7 8 9 10 php artisan migrate:make create_bears_picnics_table --create=bears_picnics          Schema::create( 'bears_picnics' , function (Blueprint $table )          {              $table ->increments( 'id' );                $table ->integer( 'bear_id' );              $table ->integer( 'picnic_id' );                $table ->timestamps();          });

通过这个关系表我们就可以实现多对多关系【多个熊 vs 多个野餐】

迁移数据库

上边的那些迁移代码搞定之后执行以下命令就可以在数据库中创建表

1 php artisan migrate

Eloquent模型

现在我们已经搞定了迁移的工作,接下来我们需要增加一些演示数据,这时Eloquent可以闪亮登场了!在我们进行数据填充之前我们先创建模型,在模型中我们需要定义模型之间的关系。

Bear模型

让我们先看一看Bear的模型是什么样子

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

本文标签: eloquent ORM 入门教程