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中为您的应用程序设置默认值是十分重要的。希望这篇文章对您有所帮助。