Laravel数据库默认值设置详解 (laravel 数据库默认值)

在Laravel中设置默认值是很方便的,Laravel提供了很多很好用的功能和简单的方法,让我们可以快速地设置数据库中的默认值。

本文将讲解Laravel中如何设置数据库默认值。

为什么需要默认值?

默认值是指当插入一条数据时,如果这条数据缺少某些字段,那么这些字段会被自动填充为默认值。默认值可以避免人为错误和程序异常,保证数据的完整性。因此,为表中的字段设置默认值是很重要的。

如何设置默认值?

Laravel提供了两种设置默认值的方法:使用迁移文件、使用模型类。

方法一:使用迁移文件

在迁移文件中可以使用default()方法对字段设置默认值,例如:

“`php

Schema::create(‘users’, function (Blueprint $table) {

$table->bigIncrements(‘id’);

$table->string(‘name’);

$table->string(’eml’)->unique();

$table->timestamp(’eml_verified_at’)->nullable();

$table->string(‘password’);

$table->rememberToken();

$table->timestamps();

$table->integer(‘score’)->default(0);

});

“`

在上述例子中,我们为score字段设置了默认值为0。这样,在插入数据时,如果缺少score字段的值,它会被自动填充为0。

方法二:使用模型类

除了在迁移文件中设置默认值,还可以在模型类中使用$attributes属性设置默认值。例如:

“`php

class User extends Authenticatable

{

use Notifiable;

protected $fillable = [

‘name’, ’eml’, ‘password’,

];

protected $hidden = [

‘password’, ‘remember_token’,

];

protected $casts = [

’eml_verified_at’ => ‘datetime’,

];

protected $attributes = [

‘score’ => 0,

];

}

“`

在上述例子中,我们在User模型类中设置了score字段的默认值为0。这样,在插入数据时,如果缺少score字段的值,它会被自动填充为0。

配置Laravel默认数据库值

Laravel还提供了默认的数据库值配置文件,您可以在其中设置公共默认值。在Laravel App中,config/database.php是所有数据库配置的入口点。在默认情况下,此文件定义了以下默认值:

‘mysql’ => [

// …

‘strict’ => true,

‘engine’ => null,

‘timezone’ => ‘+00:00’,

],

这里的strict选项是数据库级别的,它启用了MySQL的严格模式,如果禁用,您将获得不可预测的查询结果。

MySQL表级别的默认选项也可以在创建表时指定,如下所示:

CREATE TABLE users(

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(100) DEFAULT ”,

bucket VARCHAR(10) DEFAULT NULL

);

上面的命令将为name设置空字符串默认值,并为bucket设置NULL默认值。将默认值设置为空字符串是为了在向数据库中添加新数据时,确保不会使用NULL作为默认值。

本文主要介绍了如何在Laravel中设置数据库默认值。您可以使用迁移文件和模型类来设置默认值,还可以使用配置文件来设置公共默认值。根据具体的业务需求,在Laravel中为您的应用程序设置默认值是十分重要的。希望这篇文章对您有所帮助。


数据运维技术 » Laravel数据库默认值设置详解 (laravel 数据库默认值)