【发布时间】:2023-04-05 03:22:02
【问题描述】:
我可以在迁移中使用eloquent 吗?问题是,我需要根据我在模型中设置的关系向数据库添加一些值。我知道我可以通过query builder 风格和一些 SQL 或某种方式来做到这一点,但只使用 eloquent 会更容易。我不确定将来是否会出现错误。那么,在迁移中使用什么 - 雄辩或查询构建器?
【问题讨论】:
标签: laravel eloquent query-builder
我可以在迁移中使用eloquent 吗?问题是,我需要根据我在模型中设置的关系向数据库添加一些值。我知道我可以通过query builder 风格和一些 SQL 或某种方式来做到这一点,但只使用 eloquent 会更容易。我不确定将来是否会出现错误。那么,在迁移中使用什么 - 雄辩或查询构建器?
【问题讨论】:
标签: laravel eloquent query-builder
如果您愿意,您可以在迁移中使用查询构建器甚至 Eloquent。您还可以通过迁移运行数据库播种器:
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
// Run seeders
Artisan::call('db:seed');
// Or run posts seeder
Artisan::call('db:seed --class=PostsTableSeeder');
// Or call Query Builder
DB::table('posts')->insert([
['name' => 'Hiya']
]);
}
【讨论】:
我可以在迁移中使用
eloquent吗?
是的,但它可能是个坏主意。
Eloquent 依赖于您的模型与您的数据库同步。如果有区别,您可能会发现 Eloquent 很困难。请记住,迁移专门用于处理数据库查询,而不是您可能从中获得的任何类型的对象驱动数据。
我会说,作为一项规则,始终坚持在迁移中使用 DB。但是没有什么能阻止你使用 Eloquent。
【讨论】:
DB,尽管它很烦人。
if you try running that migration in the future it will likely break eventually 是什么意思?你能解释一下是什么导致它在未来中断吗?