60 lines
1.4 KiB
PHP
60 lines
1.4 KiB
PHP
|
<?php
|
|||
|
|
|||
|
namespace kernel\modules\menu\models;
|
|||
|
|
|||
|
use app\helpers\Debug;
|
|||
|
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
|
|||
|
* @method static find($id)
|
|||
|
*/
|
|||
|
|
|||
|
class Menu extends Model
|
|||
|
{
|
|||
|
const DISABLE_STATUS = 0;
|
|||
|
const ACTIVE_STATUS = 1;
|
|||
|
|
|||
|
protected $table = 'menu';
|
|||
|
protected $fillable = ['parent_id', 'icon_file', 'icon_font', 'label', 'url', 'status'];
|
|||
|
protected array $dates = ['deleted_at'];
|
|||
|
|
|||
|
public static function labels(): array
|
|||
|
{
|
|||
|
return [
|
|||
|
'parent_id' => 'Родительский пункт меню',
|
|||
|
'icon_file' => 'Путь к иконке',
|
|||
|
'icon_font' => 'Иконка',
|
|||
|
'label' => 'Заголовок',
|
|||
|
'url' => 'URL',
|
|||
|
'status' => 'Статус',
|
|||
|
];
|
|||
|
}
|
|||
|
|
|||
|
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 => "Активный",
|
|||
|
];
|
|||
|
}
|
|||
|
}
|