MicroFrameWork/kernel/modules/menu/models/Menu.php

62 lines
1.5 KiB
PHP
Raw Normal View History

2024-09-03 16:29:44 +03:00
<?php
namespace kernel\modules\menu\models;
use Illuminate\Database\Eloquent\Model;
/**
* @property int $id
* @property int parent_id
* @property string icon_file
* @property string icon_font
* @property string label
* @property string url
* @property int status
2024-09-24 14:57:25 +03:00
* @property int priority
2024-09-03 16:29:44 +03:00
* @method static find($id)
*/
class Menu extends Model
{
const DISABLE_STATUS = 0;
const ACTIVE_STATUS = 1;
protected $table = 'menu';
2024-09-24 14:57:25 +03:00
protected $fillable = ['parent_id', 'icon_file', 'icon_font', 'label', 'url', 'status', 'slug', 'priority'];
2024-09-03 16:29:44 +03:00
protected array $dates = ['deleted_at'];
public static function labels(): array
{
return [
2024-09-03 17:36:10 +03:00
'label' => 'Заголовок',
2024-09-03 16:29:44 +03:00
'parent_id' => 'Родительский пункт меню',
'icon_file' => 'Путь к иконке',
'icon_font' => 'Иконка',
'url' => 'URL',
'status' => 'Статус',
'slug' => 'Slug',
2024-09-24 14:57:25 +03:00
'priority' => 'Приоритет'
2024-09-03 16:29:44 +03:00
];
}
public static function getChild(int $id)
{
$collection = Menu::where("parent_id", $id)->get();
if (!$collection->isEmpty()){
return $collection;
}
return false;
}
/**
* @return string[]
*/
public static function getStatus(): array
{
return [
self::DISABLE_STATUS => "Не активный",
self::ACTIVE_STATUS => "Активный",
];
}
}