Commit f458cd55 authored by Mahmoud Aglan's avatar Mahmoud Aglan

Fix TypeError: Router passes route params as strings, not int

Cast string params to int at the start of each controller method.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 8baae872
...@@ -64,17 +64,17 @@ class FacilityGridController extends Controller ...@@ -64,17 +64,17 @@ class FacilityGridController extends Controller
return $this->redirect('/facility-grids/' . $grid->id)->withSuccess('تم إنشاء الشبكة بنجاح'); return $this->redirect('/facility-grids/' . $grid->id)->withSuccess('تم إنشاء الشبكة بنجاح');
} }
public function show(Request $request, int $id): Response public function show(Request $request, string $id): Response
{ {
$this->authorize('facility_grid.view'); $this->authorize('facility_grid.view');
$grid = FacilityGrid::find($id); $grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة'); if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
$date = $_GET['date'] ?? date('Y-m-d'); $date = $_GET['date'] ?? date('Y-m-d');
$time = $_GET['time'] ?? null; $time = $_GET['time'] ?? null;
$planMonth = $_GET['month'] ?? substr($date, 0, 7); $planMonth = $_GET['month'] ?? substr($date, 0, 7);
$state = GridStateService::getState($id, $date, $time); $state = GridStateService::getState((int) $id, $date, $time);
return $this->view('FacilityGrids.Views.show', [ return $this->view('FacilityGrids.Views.show', [
'grid' => $grid, 'grid' => $grid,
...@@ -84,11 +84,11 @@ class FacilityGridController extends Controller ...@@ -84,11 +84,11 @@ class FacilityGridController extends Controller
]); ]);
} }
public function edit(Request $request, int $id): Response public function edit(Request $request, string $id): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$grid = FacilityGrid::find($id); $grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة'); if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
return $this->view('FacilityGrids.Views.edit', [ return $this->view('FacilityGrids.Views.edit', [
...@@ -98,11 +98,11 @@ class FacilityGridController extends Controller ...@@ -98,11 +98,11 @@ class FacilityGridController extends Controller
]); ]);
} }
public function update(Request $request, int $id): Response public function update(Request $request, string $id): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$grid = FacilityGrid::find($id); $grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة'); if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
$rules = [ $rules = [
...@@ -128,23 +128,23 @@ class FacilityGridController extends Controller ...@@ -128,23 +128,23 @@ class FacilityGridController extends Controller
'physical_width' => !empty($_POST['physical_width']) ? (float) $_POST['physical_width'] : null, 'physical_width' => !empty($_POST['physical_width']) ? (float) $_POST['physical_width'] : null,
]); ]);
$this->regenerateZones($id, (int) $_POST['rows_count'], (int) $_POST['cols_count']); $this->regenerateZones((int) $id, (int) $_POST['rows_count'], (int) $_POST['cols_count']);
return $this->redirect('/facility-grids/' . $id)->withSuccess('تم تحديث الشبكة'); return $this->redirect('/facility-grids/' . $id)->withSuccess('تم تحديث الشبكة');
} }
public function apiState(Request $request, int $id): Response public function apiState(Request $request, string $id): Response
{ {
$date = $_GET['date'] ?? date('Y-m-d'); $date = $_GET['date'] ?? date('Y-m-d');
$time = $_GET['time'] ?? null; $time = $_GET['time'] ?? null;
$state = GridStateService::getState($id, $date, $time); $state = GridStateService::getState((int) $id, $date, $time);
return $this->json(['success' => true, 'data' => $state]); return $this->json(['success' => true, 'data' => $state]);
} }
public function toggle(Request $request, int $id): Response public function toggle(Request $request, string $id): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$grid = FacilityGrid::find($id); $grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->json(['success' => false, 'message' => 'غير موجود']); if (!$grid) return $this->json(['success' => false, 'message' => 'غير موجود']);
$grid->update(['is_active' => $grid->is_active ? 0 : 1]); $grid->update(['is_active' => $grid->is_active ? 0 : 1]);
......
...@@ -13,9 +13,10 @@ use App\Modules\FacilityGrids\Services\GridStateService; ...@@ -13,9 +13,10 @@ use App\Modules\FacilityGrids\Services\GridStateService;
class ZoneScheduleController extends Controller class ZoneScheduleController extends Controller
{ {
public function index(Request $request, int $gridId): Response public function index(Request $request, string $gridId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$grid = FacilityGrid::find($gridId); $grid = FacilityGrid::find($gridId);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة'); if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
...@@ -30,9 +31,10 @@ class ZoneScheduleController extends Controller ...@@ -30,9 +31,10 @@ class ZoneScheduleController extends Controller
]); ]);
} }
public function store(Request $request, int $gridId): Response public function store(Request $request, string $gridId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$grid = FacilityGrid::find($gridId); $grid = FacilityGrid::find($gridId);
if (!$grid) return $this->json(['success' => false, 'message' => 'شبكة غير موجودة']); if (!$grid) return $this->json(['success' => false, 'message' => 'شبكة غير موجودة']);
...@@ -110,9 +112,11 @@ class ZoneScheduleController extends Controller ...@@ -110,9 +112,11 @@ class ZoneScheduleController extends Controller
]); ]);
} }
public function update(Request $request, int $gridId, int $scheduleId): Response public function update(Request $request, string $gridId, string $scheduleId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$scheduleId = (int) $scheduleId;
$schedule = FacilityZoneSchedule::find($scheduleId); $schedule = FacilityZoneSchedule::find($scheduleId);
if (!$schedule || (int) $schedule->grid_id !== $gridId) { if (!$schedule || (int) $schedule->grid_id !== $gridId) {
...@@ -171,9 +175,11 @@ class ZoneScheduleController extends Controller ...@@ -171,9 +175,11 @@ class ZoneScheduleController extends Controller
return $this->json(['success' => true, 'message' => 'تم تحديث الجدول']); return $this->json(['success' => true, 'message' => 'تم تحديث الجدول']);
} }
public function destroy(Request $request, int $gridId, int $scheduleId): Response public function destroy(Request $request, string $gridId, string $scheduleId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$scheduleId = (int) $scheduleId;
$schedule = FacilityZoneSchedule::find($scheduleId); $schedule = FacilityZoneSchedule::find($scheduleId);
if (!$schedule || (int) $schedule->grid_id !== $gridId) { if (!$schedule || (int) $schedule->grid_id !== $gridId) {
...@@ -184,8 +190,9 @@ class ZoneScheduleController extends Controller ...@@ -184,8 +190,9 @@ class ZoneScheduleController extends Controller
return $this->json(['success' => true, 'message' => 'تم حذف الجدول']); return $this->json(['success' => true, 'message' => 'تم حذف الجدول']);
} }
public function checkConflicts(Request $request, int $gridId): Response public function checkConflicts(Request $request, string $gridId): Response
{ {
$gridId = (int) $gridId;
$grid = FacilityGrid::find($gridId); $grid = FacilityGrid::find($gridId);
if (!$grid) return $this->json(['success' => false]); if (!$grid) return $this->json(['success' => false]);
......
...@@ -10,9 +10,10 @@ use App\Core\App; ...@@ -10,9 +10,10 @@ use App\Core\App;
class ZoneTraineeController extends Controller class ZoneTraineeController extends Controller
{ {
public function assign(Request $request, int $gridId): Response public function assign(Request $request, string $gridId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$db = App::getInstance()->db(); $db = App::getInstance()->db();
$zoneId = (int) ($_POST['zone_id'] ?? 0); $zoneId = (int) ($_POST['zone_id'] ?? 0);
...@@ -49,18 +50,21 @@ class ZoneTraineeController extends Controller ...@@ -49,18 +50,21 @@ class ZoneTraineeController extends Controller
return $this->json(['success' => true, 'message' => 'تم تسجيل المتدرب']); return $this->json(['success' => true, 'message' => 'تم تسجيل المتدرب']);
} }
public function remove(Request $request, int $gridId, int $traineeId): Response public function remove(Request $request, string $gridId, string $traineeId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$traineeId = (int) $traineeId;
$db = App::getInstance()->db(); $db = App::getInstance()->db();
$db->delete('facility_zone_trainees', 'id = ?', [$traineeId]); $db->delete('facility_zone_trainees', 'id = ?', [$traineeId]);
return $this->json(['success' => true, 'message' => 'تم إزالة المتدرب']); return $this->json(['success' => true, 'message' => 'تم إزالة المتدرب']);
} }
public function move(Request $request, int $gridId, int $traineeId): Response public function move(Request $request, string $gridId, string $traineeId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$traineeId = (int) $traineeId;
$db = App::getInstance()->db(); $db = App::getInstance()->db();
$targetZoneId = (int) ($_POST['target_zone_id'] ?? 0); $targetZoneId = (int) ($_POST['target_zone_id'] ?? 0);
...@@ -88,9 +92,10 @@ class ZoneTraineeController extends Controller ...@@ -88,9 +92,10 @@ class ZoneTraineeController extends Controller
return $this->json(['success' => true, 'message' => 'تم نقل المتدرب']); return $this->json(['success' => true, 'message' => 'تم نقل المتدرب']);
} }
public function clearZone(Request $request, int $gridId, int $zoneId): Response public function clearZone(Request $request, string $gridId, string $zoneId): Response
{ {
$this->authorize('facility_grid.manage'); $this->authorize('facility_grid.manage');
$zoneId = (int) $zoneId;
$db = App::getInstance()->db(); $db = App::getInstance()->db();
$db->delete('facility_zone_trainees', 'zone_id = ?', [$zoneId]); $db->delete('facility_zone_trainees', 'zone_id = ?', [$zoneId]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment