php - 数据库播种 laravel 创建 50 个用户并为每个用户附加一个关系
问题描述
我有用
factory(App\User::class, 50)->create()->each(function ($user) {
$user->posts()->save(factory(App\Post::class)->make());
});
DatabaseSeeder 中的内部运行函数
当我执行php artisan db:seed
输出如下
Seeding: UsersTableSeeder
BadMethodCallException : Call to undefined method App\User::posts()
at /home/ahmed/myDesgin/laravelApplication/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:50
46| * @throws \BadMethodCallException
47| */
48| protected static function throwBadMethodCallException($method)
49| {
> 50| throw new BadMethodCallException(sprintf(
51| 'Call to undefined method %s::%s()', static::class, $method
52| ));
53| }
54| }
Exception trace:
1 Illuminate\Database\Eloquent\Model::throwBadMethodCallException("posts")
/home/ahmed/myDesgin/laravelApplication/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:36
2 Illuminate\Database\Eloquent\Model::forwardCallTo(Object(Illuminate\Database\Eloquent\Builder), "posts", [])
/home/ahmed/myDesgin/laravelApplication/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1618
Please use the argument -v to see more details.
这个问题的原因是什么以及如何解决它
解决方案
我不确定它是否会帮助你。但是您可以尝试使用以下关系创建用户及其虚拟帖子:
factory(User::class, 10)->create()->each(function ($user) {
$user->posts()->saveMany(factory(Posts::class, 5)->make());
});
推荐阅读
- c++ - 我正在解决递归问题,但在上一个测试用例中出现 Tle 错误,如何优化我的代码?
- python - for循环只在Python中生成一张excel表?
- angular - Angular 9.1.9 带参数的条件路由
- c# - 模拟私有对象
- php - PHP 使用 Reduce 创建多维数组
- gradle - 在第一个任务失败后不要停止 Gradle 构建
- ios - 如何从 UIDatePicker countDownTimer 模式获取数据
- sqlalchemy - 按查询输出列排序
- json - jq过滤器后无法将结果存储在变量中
- arrays - 如何在 matlab 中使用 datetime 数组创建 for - if 循环?