modules init/deactivate, modules migrations
This commit is contained in:
@ -2,8 +2,11 @@
|
||||
|
||||
namespace kernel\modules\menu\service;
|
||||
|
||||
use Exception;
|
||||
use kernel\FormModel;
|
||||
use kernel\helpers\Debug;
|
||||
use kernel\models\Menu;
|
||||
use kernel\modules\menu\models\forms\CreateMenuForm;
|
||||
use kernel\Request;
|
||||
|
||||
class MenuService
|
||||
@ -11,12 +14,13 @@ class MenuService
|
||||
public function create(FormModel $form_model): false|Menu
|
||||
{
|
||||
$model = new Menu();
|
||||
$model->parent_id = $form_model->getItem('parent_id');
|
||||
$model->parent_id = $form_model->getItem('parent_id') ?? 0;
|
||||
$model->icon_file = $form_model->getItem('icon_file');
|
||||
$model->icon_font = $form_model->getItem('icon_font');
|
||||
$model->label = $form_model->getItem('label');
|
||||
$model->url = $form_model->getItem('url');
|
||||
$model->status = $form_model->getItem('status');
|
||||
$model->status = $form_model->getItem('status') ?? 1;
|
||||
$model->slug = $form_model->getItem('slug');
|
||||
if ($model->save()){
|
||||
return $model;
|
||||
}
|
||||
@ -24,6 +28,39 @@ class MenuService
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function createItem(array $item): false|Menu
|
||||
{
|
||||
$model = new CreateMenuForm();
|
||||
$model->load($item);
|
||||
if (!$model->validate()){
|
||||
throw new Exception('Ошибка создания пункта меню');
|
||||
}
|
||||
if ($model->getItem("parent_slug")){
|
||||
$parent = $this->getBySlug($model->getItem("parent_slug"));
|
||||
if ($parent){
|
||||
$model->setItem("parent_id", $parent->id);
|
||||
}
|
||||
else {
|
||||
$model->setItem("parent_id", 0);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->create($model);
|
||||
}
|
||||
|
||||
public function removeItemBySlug(string $slug)
|
||||
{
|
||||
return Menu::where("slug", $slug)->delete();
|
||||
}
|
||||
|
||||
public function getBySlug(string $slug)
|
||||
{
|
||||
return Menu::where("slug", $slug)->first();
|
||||
}
|
||||
|
||||
public function update(FormModel $form_model, Menu $menuItem): false|Menu
|
||||
{
|
||||
$menuItem->parent_id = $form_model->getItem('parent_id');
|
||||
@ -32,6 +69,7 @@ class MenuService
|
||||
$menuItem->label = $form_model->getItem('label');
|
||||
$menuItem->url = $form_model->getItem('url');
|
||||
$menuItem->status = $form_model->getItem('status');
|
||||
$menuItem->slug = $form_model->getItem('slug');
|
||||
if ($menuItem->save()){
|
||||
return $menuItem;
|
||||
}
|
||||
|
Reference in New Issue
Block a user