Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 02.06.2020 16:43:16

Фабрика не работает во время сида с belongsTo

Здравствуйте. Перерыл интернет, не понимаю почему не работает коллбэк фабрики.

Есть три модели - пост, категория, тэг.
У поста есть два метода:

   
 public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function tags()
    {
        return $this->belongsToMany(Tag::class);
    }

В фабрике прописал это:

$factory->define(Post::class, function (Faker $faker) {
    return [
        'title' => $faker->title,
        'author_id' => 3,
        'category_id' => 3,
        'description' => $faker->text,
        'content' => $faker->text,
    ];
});

$factory->define(Category::class, function (Faker $faker) {
    return [
        'title' => $faker->title,
    ];
});

$factory->define(Tag::class, function (Faker $faker) {
    return [
        'title' => $faker->title,
    ];
});

В ране сида прописал это:

 factory(Post::class, 10)->create()->each(function (Post $post) {
            $post->category()->save(factory(App\Category::class)->make());
        });

И тут вылезает ошибка, что у belongsTo нет метода save().
А в случае с тегами:

$post->tags()->save(factory(App\Tag::class)->make());

Всё прекрасно работает, там belongsToMany
Не понимаю, что делать.
Взял это пособие в интернете) В оф документации в фабрике что-то не вижу конкретностей и деталей на этот счет(

Не в сети

Подвал раздела