как сеять заводы в зависимости от предыдущих сеян - PullRequest
0 голосов
/ 28 марта 2019

У меня есть следующие таблицы.

роли

id | name

1    role1

2    role2

3    role3

Пользователи

id | name |  email | password

рестораны

id | user_id | name  | description

Отзывы

id | restaurant_id | user_id | rating | comment

ответ

id | review_id | user_id | comment

Ключевые примечания *

1) в таблице ресторанов должны храниться только те user_id, которые имеют role_id как 2

2) в таблице отзывов должны храниться только те user_id, которые имеют role_id 1

3) в таблице ответов должны храниться только те user_id, которые имеют role_id 1 или 2.

Как правильно написать заводскую сеялку? Является ли приведенный ниже способ правильным? Однако он не работает и говорит мне, что user_id не имеет значения по умолчанию. как мне это сделать?

factory(App\Http\Models\User::class, 3)->create(['role_id'=>1]);

        factory(App\Http\Models\User::class,3)->create(['role_id'=>2])->each(function ($user) {
            $user->restaurants()->saveMany(
                factory(App\Http\Models\Restaurant::class,5)->create()->each(function ($restaurant) {
                    $restaurant->reviews()->saveMany(factory(App\Http\Models\Review::class, 5)->create(['user_id', $user->id]));
                })
            );

        });
...