72 lines
1.7 KiB
PHP
72 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace app\model;
|
|
|
|
use Exception;
|
|
|
|
class Menu extends Base
|
|
{
|
|
public const SHOW_YES = 1;
|
|
public const SHOW_NO = 0;
|
|
|
|
public const STATUS_NORMAL = 1;
|
|
public const STATUS_DISABLE = 0;
|
|
|
|
public const TYPE_MENU = 'menu';
|
|
public const TYPE_ACTION = 'action';
|
|
|
|
/**
|
|
* 默认操作
|
|
*
|
|
* @return string[]
|
|
*/
|
|
public static function defaultAction(): array
|
|
{
|
|
return [
|
|
'index' => '查看',
|
|
'add' => '添加',
|
|
'edit' => '编辑',
|
|
'del' => '删除',
|
|
'sort' => '排序',
|
|
'modify' => '属性设置',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 自从生成常规操作权限
|
|
*
|
|
* @param int $id
|
|
* @param string $name
|
|
* @param string $path
|
|
* @throws Exception
|
|
*/
|
|
public static function generate(int $id, string $name, string $path)
|
|
{
|
|
$actions = self::defaultAction();
|
|
$delete = [];
|
|
$insert = [];
|
|
$created = date('Y-m-d H:i:s');
|
|
foreach ($actions as $key => $action) {
|
|
$name = explode(':', $name)[0];
|
|
$delete[] = $name.':'.$key;
|
|
|
|
$arr = [];
|
|
$arr['title'] = $action;
|
|
$arr['pid'] = $id;
|
|
$arr['name'] = $name.':'.$key;
|
|
$arr['type'] = self::TYPE_ACTION;
|
|
$arr['path'] = $path.$id.',';
|
|
$arr['remark'] = sprintf("自动生成[%s][%s]操作", $name, $action);
|
|
$arr['created_at'] = $created;
|
|
|
|
$insert[] = $arr;
|
|
}
|
|
|
|
//删除已有常规操作
|
|
self::where('pid', $id)->whereIn('name', $delete)->delete();
|
|
|
|
//新增常规操作
|
|
(new self())->saveAll($insert);
|
|
}
|
|
}
|