HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/base.komma.pro/database/seeds/ServicepointSeeder.php
<?php

use App\Servicepoints\Models\Servicepoint;
use App\Servicepoints\Models\ServicepointTranslation;
use App\Site\Site;
use Illuminate\Database\Seeder;
use Illuminate\Support\Collection;
use Komma\KMS\Globalization\Languages\Models\Language;

/**
 * @property  site
 */
class ServicepointSeeder extends Seeder
{
    /*** @var Collection */
    private $languages;

    /*** @var \Faker\Generator */
    private $faker;

    /*** @var Site */
    private $site;

    /**
     * Run the seed
     */
    public function run()
    {
        //Create a faker to generate fake data.
        $this->faker = Faker\Factory::create();

        /** @var Site site */
        $this->site = Site::where('slug', '=', 'default')->first();

        //Get the languages
        $this->languages = Language::whereIn('iso_2', config('seeds.languages'))->get(['id', 'iso_2']);

        for ($index = 0; $index < config('seeds.models.servicepoints'); $index++) {
            $this->createServicePoint();
        }
    }

    private function createServicePoint() {
        $firstname = $this->faker->firstName;
        $lastname = $this->faker->lastName;

        $servicePoint = new Servicepoint(['name' => $firstname.' '.$lastname]);
        $servicePoint->save();

        foreach ($this->languages as $language) {
            $faker = Faker\Factory::create(strtolower($language->iso_2).'_'.strtoupper($language->iso_2));

            $translation = new ServicepointTranslation([
                'first_name' => $firstname,
                'last_name' => $lastname,
                'function' => $faker->jobTitle,
                'telephone_label' => $faker->phoneNumber,
                'telephone_url' => $faker->e164PhoneNumber,
                'email' => $faker->safeEmail,
            ]);
            $translation->language()->associate($language);
            $translation->translatable()->associate($servicePoint);
            $translation->save();
        }
    }
}