File: D:/HostingSpaces/SBogers10/eleo.komma.nl/database/seeds/ButtonSeeder.php
<?php
use App\Buttons\Models\Button;
use App\Buttons\Models\ButtonTranslation;
use App\Site\Site;
use Illuminate\Database\Seeder;
use Illuminate\Support\Collection;
class ButtonSeeder extends Seeder
{
private $buttonList = [
[
'name' => 'Contact us',
'url' => '/contact',
],
[
'name' => 'Who are we?',
'url' => '/about',
],
[
'name' => 'See our services',
'url' => '/services',
],
[
'name' => 'Download terms & conditions',
'url' => '/terms_and_conditions.pdf',
],
[
'name' => 'See all vacancies',
'url' => '/vacancies',
]
];
public function run()
{
//Get the default site
/** @var Site $site */
$site = Site::where('slug', '=', 'default')->first();
$languages = $site->languages()->get();
foreach($this->buttonList as $buttonData) {
$this->createButton($languages, $buttonData);
}
}
public function createButton(Collection $languages, $buttonData)
{
//Create the button itself...
$button = new Button(['active' => 1, 'name' => $buttonData['name']]);
$button->save();
//...Create the English translation
$url = $buttonData['url'] ?? '';
//...Add "/nl" when multipleLanguages is true
if(config('app.multipleLanguages')) {
$url = '/nl'.$buttonData['url'];
}
$translation = new ButtonTranslation(['label' => $buttonData['name'], 'url' => $url]);
$language = $languages->where('id', '40')->first();
$translation->language()->associate($language);
$translation->translatable()->associate($button);
$translation->save();
}
}