laravel 5.7 seeder relacja wiele do wiele

Odpowiedz Nowy wątek
2018-12-11 14:09
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 ?

Pozostało 580 znaków

2018-12-11 15:02
0

google -> laravel many to many tutorial


Pozostało 580 znaków

2018-12-11 17:30
0

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

Pozostało 580 znaków

2018-12-13 11:06
0

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

Pozostało 580 znaków

2018-12-17 14:13
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/[...]ng-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.

Pozostało 580 znaków

2018-12-30 18:40
Jan Kowal
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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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