mysql - 在迁移或 Eloquent 模型中设置默认值?

标签 mysql laravel eloquent default-value

基本上,您可以通过迁移或在 Eloquent 模型内为 Eloquent 模型定义默认值:

在迁移示例中定义默认值:

 $table->string('locale')->default('en');

在 Eloquent 模型中定义默认值:

protected $attributes = ['locale' => 'en'];

这两种方法各有什么优缺点?哪一个更好(对于特定用例)?

最佳答案

如果您使用迁移,则应在迁移中设置默认值。这样做的主要目的是让任何可能与您一起使用您的应用程序的人都能看到整个数据库结构。

除了建议将结构放在一个地方之外,这种方式或模型方式本身并没有什么优点或缺点。你的模型应该很轻。那里不需要发生太多事情。当您在所有这些不同的文件中进行更改时,可能会变得困惑。

这取决于偏好,但推荐的方法是使用迁移,因为这是表结构迁移存在的唯一目的和原因。

关于mysql - 在迁移或 Eloquent 模型中设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41213671/

相关文章:

mysql - 非常大的MySQL数据库,删除一列,数据库大小增加了50%

mysql - 如果不存在具有相同值的行,如何在 Mysql 中插入行

mysql - SQL 查询。我怎样才能合并这两个表?

php - Laravel getCountForPagination() 返回 Object 而不是 int

laravel - 迁移:无法添加外键约束

java - 准备好的 SQL 语句无效

mysql - Laravel 在两个表之间使用 eloquent 进行计数

php - 拉维尔 : Select from three tables using eloquent

php - 在 Laravel 中与 Blade 连接

php - Eloquent 中的外键关系不起作用