Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте. Перерыл интернет, не понимаю почему не работает коллбэк фабрики.
Есть три модели - пост, категория, тэг.
У поста есть два метода:
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
Не понимаю, что делать.
Взял это пособие в интернете) В оф документации в фабрике что-то не вижу конкретностей и деталей на этот счет(
Не в сети
Страницы 1