【发布时间】:2017-11-24 00:30:07
【问题描述】:
我想使用 laravel 种子创建测试数据。我可以为一张桌子播种。这里是:
ModelFactory.php:
/** @var \Illuminate\Database\Eloquent\Factory $factory */
$factory->define(App\User::class, function (Faker\Generator $faker) {
static $password;
return [
'email' => $faker->unique()->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
'type' => '0'
];
});
UsersTableSeeder.php:
<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run() {
factory(App\User::class, 50)->create()->each(function ($u) {
$u->posts()->save(factory(App\Post::class)->make());
});
}
}
我有两个表,分别是用户和用户信息。它们具有一对一的关系。我想与用户一起播种 user_information。但我不知道,我该怎么办......
我的模型关系函数:
用户.php
public function userInformation() {
return $this->hasOne('App\UserInformation', 'user_id', 'id');
}
用户信息.php
public function users() {
return $this->belongsTo('App\User', 'user_id', 'id');
}
Laravel 版本是 5.3
我关注了这些文档:
https://laravel.com/docs/5.3/seeding
https://laravel.com/docs/5.3/database-testing#writing-factories
【问题讨论】:
标签: php