如何在Seeder中附加功能?

问题描述

我想附加authors()

这是我在UsersTableSeeder中的代码

factory(User::class,10)->create()->each(function ($user){
    $user
        ->books()->create(factory(Book::class)->make()->toArray())
        ->categories()->attach([1,2,3])
        ->authors()->attach([1,2]);
});

但是我得到“在null上调用函数作者”的错误

解决方法

attach不返回模型。您不能全部内联。尝试像这样:

factory(User::class,10)->create()->each(function ($user) {
    $book = factory(Book::class)->make();
    $user->books()->save($book);
    $book->categories()->attach([1,2,3]);
    $book->authors()->attach([1,2])
});