Laravel5.7 Eloquent ORM快速入门详解

简介

Laravel 内置的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的模型(Model),通过模型类,你可以对数据表进行查询、插入、更新、删除等操作。

在开始之前,确保在 config/database.php 文件中配置好了数据库连接。更多关于数据库配置的信息,请查看文档。

定义模型

我们从创建一个 Eloquent 模型开始,模型类通常位于 app 目录下,你也可以将其放在其他可以被 composer.json 文件自动加载到的地方。所有 Eloquent 模型都继承自 Illuminate\Database\Eloquent\Model 类。

创建模型实例最简单的办法就是使用 Artisan 命令 make:model:

php artisan make:model Flight

如果你想要在生成模型时生成数据库迁移,可以使用 --migration 或 -m 选项:

php artisan make:model Flight --migration
php artisan make:model Flight -m

Eloquent 模型约定

现在,让我们来看一个 Flight 模型的例子,我们将用该类获取和存取数据表 flights 中的信息:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
 //
}

表名

注意我们并没有告诉 Eloquent 我们的 Flight 模型使用哪张表,默认规则是小写的模型类名复数格式作为与其对应的表名(除非在模型类中明确指定了其它名称)。所以,在本例中,Eloquent 认为 Flight 模型存储记录在 flights 表中。你也可以在模型中定义 table 属性来指定自定义的表名:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
 /**
  * 关联到模型的数据表
  *
  * @var string
  */
 protected $table = 'my_flights';
}

主键

Eloquent 默认每张表的主键名为 id,你可以在模型类中定义一个 $primaryKey 属性来覆盖该约定。

此外,Eloquent 默认主键字段是自增的整型数据,这意味着主键将会被自动转化为 int 类型,如果你想要使用非自增或非数字类型主键,必须在对应模型中设置 $incrementing 属性为 false,如果主键不是整型,还要设置 $keyType 属性值为 string。

时间戳

默认情况下,Eloquent 期望 created_at 和 updated_at 已经存在于数据表中,如果你不想要这些 Laravel 自动管理的数据列,在模型类中设置 $timestamps 属性为 false:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
 /**
  * 表明模型是否应该被打上时间戳
  *
  * @var bool
  */
 public $timestamps = false;
}


      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5967.html