在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 怎么用原生态的mysql查询
Laravel框架中的DB类让我们可以方便的进行数据库操作,比如常见的query查询:
DB::query(‘SELECT * FROM users’);
Larvel还提供了类似CI框架中Active Record的Fluent Query Builder : DB::table(‘user’)->where(‘id’,’=’,’1′)->get();
虽然从操作上和普通查询相差不大,但是需世运要注意到是Laravel的查询结果和原生查询不同。
简单建立一个contents表测试下,表里有content字段,我们查询一下:
$content = DB::table(‘contents’)->where(‘id’,’=’,’搜改梁1′)->get();
最后打印一下$content变量看看有什么不同:
array(1)
{
=> object(stdClass)#31 (1) {
=> string(24) “这是一个测试~~” }
}
从歼散上面可以知道查询的结果是一个包含对象的数组,因此我们要取得content值就必须先迭代:
foreach($contents as $content)
{ echo $content->content;
}
laravel 数据库默认值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于laravel 数据库默认值,Laravel数据库默认值设置详解,laravel 怎么用原生态的mysql查询的信息别忘了在本站进行查找喔。
来源地址:Laravel数据库默认值设置详解 (laravel 数据库默认值)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^