Laravel Seeding DB с моделью, которая имеет несколько отношений - PullRequest
0 голосов
/ 08 февраля 2019

Так что я действительно изо всех сил пытался придумать решение проблемы, когда модель имеет отношения один-ко-многим с пользователями И компаниями.Кажется, это работает, но я уверен, что это не лучший способ.Это внутри run() метода UsersTableSeeder.

public function run()
{
    factory(App\User::class, 10)
        ->create()
        ->each(function ($user) {
            $user->companies()->saveMany(
                factory(App\Company::class, 10)->create(['user_id' => $user->id])->each(function($company) use ($user) {
                    $company->jobs()->save(factory(App\Job::class)->make([
                        'user_id' => $user->id,
                        'company_id' => $company->id,
                    ]));
                })
            );
    });
}

. В приведенном выше случае задание имеет user_id и company_id.Что может быть лучше (проще) сделать это?

1 Ответ

0 голосов
/ 08 февраля 2019

Вы можете получить случайный id от компании и модели пользователя.Как это:

public function run()
{
    factory(App\User::class, 10)
        ->create()
        ->each(function ($user) {
            $user->companies()->saveMany(
                factory(App\Company::class, 10)->create(['user_id' => $user->id])->each(function($company) use ($user) {
                    $company->jobs()->save(factory(App\Job::class)->make([
                        'user_id' => App\User::all()->random()->id,
                        'company_id' => App\Company::all()->random()->id,
                    ]));
                })
            );
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...