Laravel 有关系的种子(真实数据)
Laravel Seed with Relationship (Real Data)
我正在尝试使用一些具有 belongsTo 关系的数据为我的 table 播种,但我不知道应该如何处理这种关系。谁能告诉我 belongsTo 关系在播种真实数据时应该是什么样子?
种子文件
public function run()
{
CarSchema::create([
'type_of_car' => 'small',
'horse_power' => 98,
'brand' => 3 // Want to get the brand of id 3 here
])
}
我想要的结果是 "brand" 对应于品牌 table 中的 id 3 所以在前端我也有品牌而不仅仅是它的 id .
您的车型:
public function brand()
{
return $this->belongsTo(\App\Brand::class, 'brand_id');
}
您的品牌型号:
public function cars()
{
return $this->hasMany(\App\Car::class);
}
您的 cars
迁移:
public function up()
{
Schema::create('cars', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->enum('type_of_car', ['small', 'medium', 'large']); // just extra example
$table->year('year');
$table->mediumInteger('horse_power');
// car's brand id below
$table->unsignedInteger('brand_id');
$table->foreign('brand_id')->references('id')->on('brands')->onDelete('cascade');
});
}
要播种您的 cars
table,您可以将 brands
table 中的任何 id
插入 [=15] 中的 brand_id
=] table,例如:
Car::create([
'name' => 'S4',
'type_of_car' => 'medium',
'year' => '2014',
'horse_power' => 333,
'brand_id' => 3 // <-- this id should exist in brands table
]);
如果您使用随机品牌为汽车播种,您可以插入一个随机品牌 ID,而不是对 ID 进行硬编码(就像我在上面所做的那样 brand_id 为 3):
...
'brand_id' => \App\Brand::all('id')->random()->id
]);
我正在尝试使用一些具有 belongsTo 关系的数据为我的 table 播种,但我不知道应该如何处理这种关系。谁能告诉我 belongsTo 关系在播种真实数据时应该是什么样子?
种子文件
public function run()
{
CarSchema::create([
'type_of_car' => 'small',
'horse_power' => 98,
'brand' => 3 // Want to get the brand of id 3 here
])
}
我想要的结果是 "brand" 对应于品牌 table 中的 id 3 所以在前端我也有品牌而不仅仅是它的 id .
您的车型:
public function brand()
{
return $this->belongsTo(\App\Brand::class, 'brand_id');
}
您的品牌型号:
public function cars()
{
return $this->hasMany(\App\Car::class);
}
您的 cars
迁移:
public function up()
{
Schema::create('cars', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->enum('type_of_car', ['small', 'medium', 'large']); // just extra example
$table->year('year');
$table->mediumInteger('horse_power');
// car's brand id below
$table->unsignedInteger('brand_id');
$table->foreign('brand_id')->references('id')->on('brands')->onDelete('cascade');
});
}
要播种您的 cars
table,您可以将 brands
table 中的任何 id
插入 [=15] 中的 brand_id
=] table,例如:
Car::create([
'name' => 'S4',
'type_of_car' => 'medium',
'year' => '2014',
'horse_power' => 333,
'brand_id' => 3 // <-- this id should exist in brands table
]);
如果您使用随机品牌为汽车播种,您可以插入一个随机品牌 ID,而不是对 ID 进行硬编码(就像我在上面所做的那样 brand_id 为 3):
...
'brand_id' => \App\Brand::all('id')->random()->id
]);