首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel 5中使用factory为数据透视表设定种子

在Laravel 5中使用factory为数据透视表设定种子
EN

Stack Overflow用户
提问于 2018-04-12 16:20:27
回答 1查看 298关注 0票数 1
代码语言:javascript
复制
    public function run()
    {
    factory(App\ProjectProcurementManagementPlan::class, 5)->create()->each(function ($a) {
        $a->paps()
            ->saveMany( factory(App\ProjectsProgramsActivities::class, 5)->make() )
            ->each(function ($b) {
                $b->pap_schedules()->save(factory(App\PapSchedule::class)->make());
                $b->procurement_modes()-> ????????;
            });
        });
    }

我这里有这个代码。我想在创建了上面提到的每个模型之后播种一个数据透视表。$b->procurement_modes()-> ????????将是我对数据透视表做工厂工作的部分。

数据透视表如下所示。

id | pap_id | procurement_mode_id

我的计划是,为了简单起见,我将只为每个创建的ProjectsProgramsActivities附加一个procurement_mode_id。

我试着用

$b->procurement_modes()->sync(factory(App\PAPProcurementMode::class)->make());

但它给了我一个

SQLSTATE[HY000]: General error: 1366 In correct integer value: '' for column 'procurement_mode_id' at row 1 (SQL: insert into paps_procurement_modes (pap_i, procurement_mode_id) values (1, ))

透视表工厂是这样的

代码语言:javascript
复制
    $factory->define(App\PAPProcurementMode::class, function (Faker $faker) {
    return [
        'procurement_mode_id' => 1,
    ];
});

那么,最好的方法是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2018-04-12 16:30:08

对于那些会遇到这样的问题的人。

我只是

$ids = 1; $b->procurement_modes()->sync($ids);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49791410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档