laravel 5.7 seeder relacja wiele do wiele

1

Cześć

Czy możecie podpowiedzieć jak zrobić relacje wiele do wiele w seeder, chodzi o to czy zeby wygenerowac dane dla tabeli posredniczacej w tej relacji category_video trzeba wygenerowac faktory CategoryVideoFactory czy moze powienem probowac osobno przez CategoryFactory oraz druga VideoFactory ? Moze macie jakis tutorial do tego to prosze o linka ?

0

google -> laravel many to many tutorial

0

czy ktos wie jak uzyc seedera w relacji wiele do wiele w laravel 5.7 ???

0

Mam identyczny problem do twojego i jestem ciekaw czy udało ci się go rozwiązać :)

0

Ogólnie to nie musisz korzystać z factory w seederze, a wywołać model bezpośrednio przez fasadę.
Wypełniasz przykładowo tabelę users.
Później wypełniasz tabelę przykładowo roles.
Później przypisujesz roles do users:

$user = App\User::find(1);

$user->roles()->attach($roleId);
Jak chcesz mieć dodatkowe dane w tabeli łączącej users_roles to dodajesz je w drugim parametrze:
$user->roles()->attach($roleId, ['expires' => $expires]);

Wszystko jest w dokumentacji:
https://laravel.com/docs/5.7/eloquent-relationships#updating-many-to-many-relationships

$user->roles()->attach([
1 => ['expires' => $expires],
2 => ['expires' => $expires]
]);

Powyżej przypisanie wielu rekordów na raz do usera.
Poniżej przykład z factory:

factory(App\User::class, 50)->create()->each(function ($user) {
$posts = factory(App\Post::class, 10)->create();
$user->posts ()->attach($posts->pluck('id')->toArray());
});

Jest tutaj wiele do wielu, z tym, że dla każdego usera i tak są tworzone nowe posty, ale przypisanie jest w pivocie.

0
linuxf napisał(a):

Mam identyczny problem do twojego i jestem ciekaw czy udało ci się go rozwiązać :)

zrobilem w ten sposob , jak na razie dziala

https://4programmers.net/Pastebin/10333

1 użytkowników online, w tym zalogowanych: 0, gości: 1