Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在迁移或雄辩模型中设置默认值?_Mysql_Laravel_Eloquent_Default Value - Fatal编程技术网

Mysql 在迁移或雄辩模型中设置默认值?

Mysql 在迁移或雄辩模型中设置默认值?,mysql,laravel,eloquent,default-value,Mysql,Laravel,Eloquent,Default Value,基本上,您可以通过迁移或在雄辩模型中为雄辩模型定义默认值: protected $attributes = ['locale' => 'en']; 在迁移示例中定义默认值: $table->string('locale')->default('en'); 在雄辩模型中定义默认值: protected $attributes = ['locale' => 'en']; 这两种方法的优缺点是什么?哪一个更好(针对特定用例)?如果使用迁移,则应在迁移中设置默认值。这样做

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

protected $attributes = ['locale' => 'en'];
在迁移示例中定义默认值:

 $table->string('locale')->default('en');
在雄辩模型中定义默认值:

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

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

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

这种方式或模型方式本身并没有什么好处或坏处,建议将结构放在一个地方。你的模型应该是轻的。那里不需要发生太多事情。当您在所有这些不同的文件中抛出更改时,它可能会变得混乱


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

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

这种方式或模型方式本身并没有什么好处或坏处,建议将结构放在一个地方。你的模型应该是轻的。那里不需要发生太多事情。当您在所有这些不同的文件中抛出更改时,它可能会变得混乱


这取决于首选项,但推荐的方法是使用迁移,因为对于表结构而言,这是迁移的唯一目的,也是迁移存在的原因。

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


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

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

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