File: D:/HostingSpaces/meuwis/lmbm.be/app/KommaApp/Shop/seeds/SampleCategories.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 Illuminate\Database\Seeder;
class SampleCategories extends Seeder
{
public function run()
{
$rootCategory = Category::find(1);
if(!$rootCategory) return;
$windowDecorationCategory = $this->makeCategoryAndTranslation('Window decoration', '', $rootCategory);
$tools = $this->makeCategoryAndTranslation('Tools', '', $rootCategory);
$paint = $this->makeCategoryAndTranslation('Paint', '', $rootCategory);
$blinds = $this->makeCategoryAndTranslation('Blinds', '', $windowDecorationCategory);
$curtains = $this->makeCategoryAndTranslation('Curtains', '', $windowDecorationCategory);
$handTools = $this->makeCategoryAndTranslation('Hand tools', '', $tools);
$powerTools = $this->makeCategoryAndTranslation('Power tools', '', $tools);
$screwDrivers = $this->makeCategoryAndTranslation('Screwdrivers', '', $handTools);
$hammersAndMallets = $this->makeCategoryAndTranslation('Hammers and mallets', '', $handTools);
$drills = $this->makeCategoryAndTranslation('Drills', '', $powerTools);
$grinders = $this->makeCategoryAndTranslation('Grinders', '', $powerTools);
$saws = $this->makeCategoryAndTranslation('Saws', '', $powerTools);
}
private function makeCategoryAndTranslation(string $name, string $description, Category $parent, int $languageId = 104)
{
$language = Language::find($languageId);
$category = new Category(['code_name' => str_slug($name)]);
$category->site_id = 1;
$category->active = 1;
$category->makeLastChildOf($parent);
$translation = new CategoryTranslation(['name' => $name, 'meta_title' => $name, 'slug' => str_slug($name), 'description' => $description]);
$translation->language()->associate($language);
$category->translations()->save($translation);
return $category;
}
}