php - Laravel 工厂如何从你的数据库种子文件中调用它们
问题描述
如何从数据库播种机调用工厂文件我查看了 laravel 文档并尝试使用此代码
https://laravel.com/docs/5.7/seeding
factory(App\User::class, 50)->create()->each(function ($user) {
$user->posts()->save(factory(App\Post::class)->make());
});
但它没有用,所以我的问题是我如何从我的数据库播种器文件中调用我的工厂,以便我可以从命令行执行它们?
数据库播种机
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
Eloquent::unguard();
$this->call(UserFactory::class);
$this->call(PostFacory::class);
$this->call(ProfileFacory::class);
$this->command->info("Database seeded.");
Eloquent::reguard();
}
}
用户工厂
<?php
use Faker\Generator as Faker;
$factory->define(App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => bcrypt('password'),
'remember_token' => str_random(10),
];
});
解决方案
数据库播种是
php artisan db:seed
在 laravel 路径中...如果您已经播种,则必须清理(确定是否没有重要数据)
php artisan migrate:refresh
在这里小心:)
推荐阅读
- sass - 为什么我的主题在一个组件上工作而不是另一个?
- python - 在不更改其代码的情况下从另一个线程捕获异常
- python - 将数组值打印到它们自己的数据框行
- node.js - 如何在 nodejs 和 SendGrid 中发送电子邮件确认?
- ruby-on-rails - 如何使用 capistrano gem 部署 rails + react 项目?
- javascript - 在同一页面上运行 2 个幻灯片
- python - Python lxml将dom对象写入文件
- java - 在 java 中使用 ScriptEngineManager 定义变量
- javascript - 如何使用递归生成器动画算法步骤
- excel - 数组下标超出范围错误的 For 循环