【发布时间】:2018-09-10 01:49:55
【问题描述】:
我有一个包含品牌和商店两列的数据库。每个品牌可以欠几家商店,我想使用 Laravel 通过 Fakers 播种我的数据库。
所以在模型中设置迁移和关系之后
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Brand extends Model
{
/**
* Get the shops for the brand.
*/
public function shops()
{
return $this->hasMany('App\Shop','sh_brand_id');
}
}
还有:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Shop extends Model
{
public function user() {
return $this->belongsTo('App\Brand','sh_brand_id');
}
}
我想使用工厂来为数据库播种。
<?php
use Faker\Generator as Faker;
$factory->define(App\Shop::class, function (Faker $faker) {
return [
'name' => $faker->company,
'address' => $faker->address,
];
});
和
use Faker\Generator as Faker;
$factory->define(App\Brand::class, function (Faker $faker) {
return [
'name' => $faker->company,
'logo_url' => $faker->imageUrl(640, 480),
'website' => $faker->url,
'description' => $faker->text(500),
'telephone_number' =>'31'. $faker->randomNumber(8),
'principal_address' => $faker->address,
'email' => $faker->unique()->safeEmail,
];
});
最后我需要使用这些工厂为数据库播种。网站上有文档和很多例子,但是我发现的每个解决方案都让我只为每个品牌生成一个商店,我想为每个品牌生成很多商店。
最好的方法是什么?
【问题讨论】:
标签: php laravel eloquent faker laravel-seeding