В моем приложении Laravel 5.2 есть следующая структура:
Пользователь: id имя ...
Сообщение: id title body user_id (fk)
Комментарий: id body user_id (fk) post_id (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)
);
});
ПРИМЕЧАНИЕ: я установил отношения между моделями следующим образом: у пользователя есть много сообщений, у пользователя есть много комментариев, у сообщения есть много комментариев, комментарий принадлежит к сообщению, комментарий принадлежит пользователю.