Last active
November 8, 2021 17:58
-
-
Save mnoskov/76680c7433f3ae63e22c0674e3d18eea to your computer and use it in GitHub Desktop.
Create TV seeder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Database\Seeders; | |
use EvolutionCMS\Models\{SiteTemplate, SiteTmplvarTemplate, SiteTmplvar}; | |
use Illuminate\Database\Seeder; | |
class CreateTVSeeder extends Seeder | |
{ | |
protected function getTemplateAliasesToAssign() | |
{ | |
return [ | |
'main', | |
'info', | |
]; | |
} | |
protected function getTemplateVarsData() | |
{ | |
return [ | |
'name' => [ | |
'caption' => 'Название', | |
'type' => 'text', | |
], | |
]; | |
} | |
public function run() | |
{ | |
$this->createTemplateVars(); | |
evo()->clearCache('full'); | |
} | |
protected function createTemplateVars() | |
{ | |
$templates = $this->getTemplates(); | |
foreach ($this->getTemplateVarsData() as $tvName => $tvData) { | |
$tv = $this->createTemplateVar($tvName, $tvData); | |
$this->createTemplateRelations($tv, $templates); | |
} | |
} | |
protected function getTemplates() | |
{ | |
return SiteTemplate::query() | |
->whereIn('alias', $this->getTemplateAliasesToAssign()) | |
->get(); | |
} | |
protected function createTemplateVar($name, $data) | |
{ | |
return SiteTmplvar::updateOrCreate([ | |
'name' => $name, | |
], $data); | |
} | |
protected function createTemplateRelations(SiteTmplvar $tv, $templates) | |
{ | |
foreach ($templates as $template) { | |
SiteTmplvarTemplate::query()->insertOrIgnore([ | |
'tmplvarid' => $tv->id, | |
'templateid' => $template->id, | |
]); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment