fix: nullable|integer — system controllers accept null/empty for optional integer fields

This commit is contained in:
li
2026-03-14 17:46:18 +08:00
parent 5cc8df4d68
commit 7d2b906e77
5 changed files with 16 additions and 16 deletions
@@ -22,9 +22,9 @@ class DepartmentController extends Controller
public function store(Request $request): JsonResponse public function store(Request $request): JsonResponse
{ {
$data = $request->validate([ $data = $request->validate([
'parent_id' => 'integer', 'parent_id' => 'nullable|integer',
'name' => 'required|string|max:50', 'name' => 'required|string|max:50',
'sort' => 'integer', 'sort' => 'nullable|integer',
'status' => 'in:0,1', 'status' => 'in:0,1',
]); ]);
@@ -36,9 +36,9 @@ class DepartmentController extends Controller
public function update(Request $request, Department $department): JsonResponse public function update(Request $request, Department $department): JsonResponse
{ {
$data = $request->validate([ $data = $request->validate([
'parent_id' => 'integer', 'parent_id' => 'nullable|integer',
'name' => 'string|max:50', 'name' => 'string|max:50',
'sort' => 'integer', 'sort' => 'nullable|integer',
'status' => 'in:0,1', 'status' => 'in:0,1',
]); ]);
@@ -44,7 +44,7 @@ class DictionaryController extends Controller
$data = $request->validate([ $data = $request->validate([
'label' => 'required|string|max:100', 'label' => 'required|string|max:100',
'value' => 'required|string|max:100', 'value' => 'required|string|max:100',
'sort' => 'integer', 'sort' => 'nullable|integer',
'status' => 'in:0,1', 'status' => 'in:0,1',
]); ]);
@@ -61,7 +61,7 @@ class DictionaryController extends Controller
$data = $request->validate([ $data = $request->validate([
'label' => 'string|max:100', 'label' => 'string|max:100',
'value' => 'string|max:100', 'value' => 'string|max:100',
'sort' => 'integer', 'sort' => 'nullable|integer',
'status' => 'in:0,1', 'status' => 'in:0,1',
]); ]);
@@ -20,7 +20,7 @@ class MenuController extends Controller
public function store(Request $request): JsonResponse public function store(Request $request): JsonResponse
{ {
$data = $request->validate([ $data = $request->validate([
'parent_id' => 'integer', 'parent_id' => 'nullable|integer',
'name' => 'required|string|max:50', 'name' => 'required|string|max:50',
'path' => 'nullable|string|max:255', 'path' => 'nullable|string|max:255',
'component' => 'nullable|string|max:255', 'component' => 'nullable|string|max:255',
@@ -28,7 +28,7 @@ class MenuController extends Controller
'permission_code' => 'nullable|string|max:100', 'permission_code' => 'nullable|string|max:100',
'type' => 'required|in:1,2,3', 'type' => 'required|in:1,2,3',
'visible' => 'in:0,1', 'visible' => 'in:0,1',
'sort' => 'integer', 'sort' => 'nullable|integer',
'status' => 'in:0,1', 'status' => 'in:0,1',
]); ]);
@@ -39,7 +39,7 @@ class MenuController extends Controller
public function update(Request $request, Menu $menu): JsonResponse public function update(Request $request, Menu $menu): JsonResponse
{ {
$data = $request->validate([ $data = $request->validate([
'parent_id' => 'integer', 'parent_id' => 'nullable|integer',
'name' => 'string|max:50', 'name' => 'string|max:50',
'path' => 'nullable|string|max:255', 'path' => 'nullable|string|max:255',
'component' => 'nullable|string|max:255', 'component' => 'nullable|string|max:255',
@@ -47,7 +47,7 @@ class MenuController extends Controller
'permission_code' => 'nullable|string|max:100', 'permission_code' => 'nullable|string|max:100',
'type' => 'in:1,2,3', 'type' => 'in:1,2,3',
'visible' => 'in:0,1', 'visible' => 'in:0,1',
'sort' => 'integer', 'sort' => 'nullable|integer',
'status' => 'in:0,1', 'status' => 'in:0,1',
]); ]);
@@ -20,13 +20,13 @@ class PermissionController extends Controller
public function store(Request $request): JsonResponse public function store(Request $request): JsonResponse
{ {
$data = $request->validate([ $data = $request->validate([
'parent_id' => 'integer', 'parent_id' => 'nullable|integer',
'name' => 'required|string|max:50', 'name' => 'required|string|max:50',
'code' => 'required|string|max:100|unique:permissions,code', 'code' => 'required|string|max:100|unique:permissions,code',
'module' => 'nullable|string|max:50', 'module' => 'nullable|string|max:50',
'type' => 'required|in:1,2,3', 'type' => 'required|in:1,2,3',
'description' => 'nullable|string|max:255', 'description' => 'nullable|string|max:255',
'sort' => 'integer', 'sort' => 'nullable|integer',
]); ]);
$permission = Permission::create($data); $permission = Permission::create($data);
@@ -36,13 +36,13 @@ class PermissionController extends Controller
public function update(Request $request, Permission $permission): JsonResponse public function update(Request $request, Permission $permission): JsonResponse
{ {
$data = $request->validate([ $data = $request->validate([
'parent_id' => 'integer', 'parent_id' => 'nullable|integer',
'name' => 'string|max:50', 'name' => 'string|max:50',
'code' => 'string|max:100|unique:permissions,code,' . $permission->id, 'code' => 'string|max:100|unique:permissions,code,' . $permission->id,
'module' => 'nullable|string|max:50', 'module' => 'nullable|string|max:50',
'type' => 'in:1,2,3', 'type' => 'in:1,2,3',
'description' => 'nullable|string|max:255', 'description' => 'nullable|string|max:255',
'sort' => 'integer', 'sort' => 'nullable|integer',
]); ]);
$permission->update($data); $permission->update($data);
@@ -21,7 +21,7 @@ class PositionController extends Controller
{ {
$data = $request->validate([ $data = $request->validate([
'name' => 'required|string|max:50', 'name' => 'required|string|max:50',
'sort' => 'integer', 'sort' => 'nullable|integer',
]); ]);
$data['store_id'] = auth()->user()->store_id; $data['store_id'] = auth()->user()->store_id;
@@ -33,7 +33,7 @@ class PositionController extends Controller
{ {
$data = $request->validate([ $data = $request->validate([
'name' => 'string|max:50', 'name' => 'string|max:50',
'sort' => 'integer', 'sort' => 'nullable|integer',
]); ]);
$position->update($data); $position->update($data);