87 lines
2.6 KiB
PHP
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([]);
|
|
|
|
}
|
|
|
|
}
|