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

时间:2016-12-18 22:45:23

标签: mysql laravel eloquent default-value

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

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

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

在Eloquent模型中定义默认值:

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

这两种方法的优点和缺点是什么?哪一个更好(针对特定用例)?

2 个答案:

答案 0 :(得分:1)

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

除了在一个地方建立你的结构之外,确实没有这样做或者模型方式的专业人士或骗子。你的模型应该很轻。不需要在那里发生很多事情。当您在所有这些不同的文件中进行更改时,它会变得混乱。

它将归结为首选,但推荐的方法是使用迁移,因为这是表结构的唯一目的和迁移的原因。

答案 1 :(得分:0)

要记住的一件事是,在处理迁移时要更改默认值,则需要创建一个新的迁移文件。使用模型方法时,您可以更改源代码中的默认值,就是这样。

基于这一点,有一个更好的角度,因为创建迁移可以被视为跟踪数据库更改的一种方法-但是版本控制和更改源代码更适合于此,因此再次值得考虑,但两者都能很好地工作。

相关问题