Eloquent 迁移中
Eloquent in migration
我可以在迁移中使用 eloquent
吗?问题是,我需要根据我在模型中设置的关系向数据库添加一些值。我知道我可以通过 query builder
风格和一些 SQL 或某种方式来做到这一点,但只使用 eloquent 会更容易。我不确定将来是否会出现错误。那么,在迁移中使用什么 - eloquent 或查询构建器?
如果需要,您可以在迁移中使用查询构建器甚至 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']
]);
}
Can I use eloquent
in migration?
是的,但是可能不是个好主意。
Eloquent 依赖于您的模型与数据库同步。如果有差异,您可能会发现 Eloquent 很挣扎。请记住,迁移专门用于处理数据库查询,而不是您可能从中获得的任何类型的 object-driven 数据。
我想说的是,作为一项规则,始终坚持在迁移中使用 DB
。但是物理上没有什么可以阻止你使用 Eloquent.
我可以在迁移中使用 eloquent
吗?问题是,我需要根据我在模型中设置的关系向数据库添加一些值。我知道我可以通过 query builder
风格和一些 SQL 或某种方式来做到这一点,但只使用 eloquent 会更容易。我不确定将来是否会出现错误。那么,在迁移中使用什么 - eloquent 或查询构建器?
如果需要,您可以在迁移中使用查询构建器甚至 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']
]);
}
Can I use
eloquent
in migration?
是的,但是可能不是个好主意。
Eloquent 依赖于您的模型与数据库同步。如果有差异,您可能会发现 Eloquent 很挣扎。请记住,迁移专门用于处理数据库查询,而不是您可能从中获得的任何类型的 object-driven 数据。
我想说的是,作为一项规则,始终坚持在迁移中使用 DB
。但是物理上没有什么可以阻止你使用 Eloquent.