File: D:/HostingSpaces/centrum8a/centrum8a.com/app/KommaApp/Shop/seeds/SampleProperties.php
<?php
/**
* Created by PhpStorm.
* User: julesgraus
* Date: 02/02/2018
* Time: 11:03
*/
namespace App\KommaApp\Shop\seeds;
use App\KommaApp\Languages\Models\Language;
use App\KommaApp\Shop\Categories\Models\Category;
use App\KommaApp\Shop\Categories\Models\CategoryTranslation;
use App\KommaApp\Shop\Properties\Models\Property;
use App\KommaApp\Shop\Properties\Models\PropertyKey;
use App\KommaApp\Shop\Properties\Models\PropertyKeyTranslation;
use App\KommaApp\Shop\Properties\Models\PropertyValue;
use App\KommaApp\Shop\Properties\Models\PropertyValueTranslation;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Lang;
class SampleProperties extends Seeder
{
public function run()
{
$propertiesData = [
[
'key' => [
'nl' => 'Primaire kleuren',
'en' => 'Primary colors'
],
'values' => [
'nl' => [
'rood',
'groen',
'blauw',
'zwart',
'wit',
],
'en' => [
'red',
'green',
'blue',
'black',
'white'
]
],
],
[
'key' => [
'nl' => 'Materialen',
'en' => 'Materials'
],
'values' => [
'nl' => [
'plastic',
'metaal',
'keramiek',
'glas',
'hout',
],
'en' => [
'plastic',
'metal',
'ceramic',
'glass',
'wood',
]
],
]
];
$languages = [
// 'en' => Language::where('iso_2', '=', 'en')->first(),
'nl' => Language::where('iso_2', '=', 'nl')->first()
];
foreach($propertiesData as $propertyData)
{
$key = new PropertyKey();
$key->save();
foreach($languages as $iso_639_1 => $language) {
$keyTranslation = new PropertyKeyTranslation();
$keyTranslation->value = $propertyData['key'][$iso_639_1];
$keyTranslation->language()->associate($language);
$keyTranslation->translatable()->associate($key);
$keyTranslation->save();
foreach($propertyData['values'][$iso_639_1] as $value) {
$property = new Property();
$property->code_name = str_slug($propertyData['key'][$iso_639_1].' - '.$value);
$property->key()->associate($key);
$propertyValue = new PropertyValue();
$propertyValue->save();
$property->value()->associate($propertyValue);
$valueTranslation = new PropertyValueTranslation();
$valueTranslation->value = $value;
$valueTranslation->translatable()->associate($propertyValue);
$valueTranslation->language()->associate($language);
$valueTranslation->save();
$property->save();
}
}
}
}
}