Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 模型工厂与现有模型的关联_Php_Laravel_Model_Factory - Fatal编程技术网

Php 模型工厂与现有模型的关联

Php 模型工厂与现有模型的关联,php,laravel,model,factory,Php,Laravel,Model,Factory,我的Laravel 5.2应用程序具有以下结构: 用户: 身份证件 名称 职位: 身份证件 标题 身体 用户id(fk) 评论: 身份证件 身体 用户id(fk) 邮政编码(fk) 我想创建几个用户(20个),为每个用户创建随机数量的帖子,并为每个帖子创建随机数量的评论(即使是固定数量也可以) 我可以创建用户并为每个帖子分配帖子,但我不能为每个帖子分配评论: 我有这个: factory(App\User::class, 20)->create()->each(function($u

我的Laravel 5.2应用程序具有以下结构:

用户: 身份证件 名称

职位: 身份证件 标题 身体 用户id(fk)

评论: 身份证件 身体 用户id(fk) 邮政编码(fk)

我想创建几个用户(20个),为每个用户创建随机数量的帖子,并为每个帖子创建随机数量的评论(即使是固定数量也可以)

我可以创建用户并为每个帖子分配帖子,但我不能为每个帖子分配评论: 我有这个:

factory(App\User::class, 20)->create()->each(function($u) {
   $u->posts()->saveMany(factory(App\Post::class, 5)->make();
});
我发现了一些东西,但没用:

factory(App\Comment::class, 100)->create()->each(function($u) {
   $u->user()->sync(
      App\User::all()->random(3)
   );
});
注意:我对模型之间的关系做了如下描述: 用户有很多帖子, 用户有很多评论, 帖子有很多评论, 发表评论如下:,
对用户进行以下评论

您可以通过使用工厂嵌套下一个孩子等方式实现这一点

您有一些被某些
fk
引用的关系,因此要获得正确的“fk”值,您可以执行以下操作:

factory('App\Users', 123)->create()->each(function ($u) {

        factory('App\Posts', 1)->create([
            'user_id' => $u->id,
        ])->each(function ($e) use ($u) {
            factory('App\Comments', 10)->create([
                'user_id' => $u->id,
                'post_id' => $e->id,
            ]);
        });

    });

create
方法中的数组将覆盖
ModelFactory.php

[ErrorException]未定义属性中设置的值:illumb\Database\Eloquent\Builder::$ordersI更改为App\User::class,错误消失了。:)谢谢,很高兴我能帮忙!:)这会在同一个用户的帖子中创建两条评论。但是我想对于一般测试来说,用数据填充数据库是可以的。