87 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\MenuModel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class MenuController extends Controller
{
//
public function index () {
$menu = MenuModel::all();
if ($menu) {
$menu = $menu->toArray();
} else {
$menu = [];
}
$menu = getTreeList($menu);
return $this->success($menu);
}
public function store (Request $request) {
$validator = Validator::make($request->all(),[
'name' => 'required',
'pid' => 'required',
'url' => 'required'
],[
'name.required' => '菜单名称不能为空',
'pid.required' => '上级菜单不能为空',
'url.required' => '菜单地址不能为空'
]);
if ($validator->fails()){
return $this->error(ERROR_CODE_PARAM_INVALID,$validator->errors()->first());
}
$arr = $request->all();
// return $this->success($arr);
$res = MenuModel::create($arr);
if (! $res) {
return $this->error(ERROR_CODE_INTERNAL_ERROR,'系统繁忙,稍后再试');
}
return $this->success([]);
}
public function update ($id,Request $request) {
if (! is_numeric($id)) {
return $this->error(ERROR_CODE_PARAM_INVALID,'参数格式不对');
}
$validator = Validator::make($request->all(),[
'name' => 'required',
'pid' => 'required',
'url' => 'required'
],[
'name.required' => '菜单名称不能为空',
'pid.required' => '上级菜单不能为空',
'url.required' => '菜单地址不能为空'
]);
if ($validator->fails()){
return $this->error(ERROR_CODE_PARAM_INVALID,$validator->errors()->first());
}
$arr = $request->all();
$res = MenuModel::where('id',$id)->update($arr);
if (! $res) {
return $this->error(ERROR_CODE_INTERNAL_ERROR,'系统繁忙,稍后再试');
}
return $this->success([]);
}
public function destroy ($id) {
if (! is_numeric($id)) {
return $this->error(ERROR_CODE_PARAM_INVALID,'参数格式不对');
}
$count = MenuModel::where('pid',$id)->count();
if ($count) {
return $this->error(ERROR_CODE_INTERNAL_ERROR,'该菜单下有子菜单');
}
$res = MenuModel::destroy($id);
if (! $res) {
return $this->error(ERROR_CODE_INTERNAL_ERROR,'系统繁忙,稍后再试');
}
return $this->success([]);
}
}