From 5241780cdda974e5e037bb71091af983c4aee2ef Mon Sep 17 00:00:00 2001 From: xiaomlove <353856593@qq.com> Date: Fri, 7 May 2021 18:30:58 +0800 Subject: [PATCH] store-exam-validate --- app/Http/Controllers/ExamController.php | 5 +++++ app/Repositories/ExamRepository.php | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/ExamController.php b/app/Http/Controllers/ExamController.php index 660a3513..84e99c34 100644 --- a/app/Http/Controllers/ExamController.php +++ b/app/Http/Controllers/ExamController.php @@ -5,10 +5,12 @@ namespace App\Http\Controllers; use App\Http\Resources\ExamResource; use App\Http\Resources\ExamUserResource; use App\Http\Resources\UserResource; +use App\Models\Exam; use App\Repositories\ExamRepository; use App\Repositories\UserRepository; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Validation\Rule; class ExamController extends Controller { @@ -43,6 +45,8 @@ class ExamController extends Controller $rules = [ 'name' => 'required|string', 'indexes' => 'required|array|min:1', + 'indexes.*.index' => ['required', Rule::in(array_keys(Exam::$indexes))], + 'indexes.*.require_value' => 'required|numeric', 'status' => 'required|in:0,1', 'duration' => 'nullable|numeric' ]; @@ -77,6 +81,7 @@ class ExamController extends Controller $rules = [ 'name' => 'required|string', 'indexes' => 'required|array|min:1', + 'indexes.*.name' => 'required', 'status' => 'required|in:0,1', 'duration' => 'nullable|numeric' ]; diff --git a/app/Repositories/ExamRepository.php b/app/Repositories/ExamRepository.php index 878cee12..7a1e316b 100644 --- a/app/Repositories/ExamRepository.php +++ b/app/Repositories/ExamRepository.php @@ -56,12 +56,12 @@ class ExamRepository extends BaseRepository } $validIndex = []; foreach ($params['indexes'] as $index) { - if (!isset($index['checked']) || !$index['checked']) { + if (isset($index['checked']) && !$index['checked']) { continue; } if (!isset($index['require_value']) || !ctype_digit((string)$index['require_value'])) { throw new \InvalidArgumentException(sprintf( - 'Invalid require value for index: %s.', $index['name'] + 'Invalid require value for index: %s.', $index['index'] )); } $validIndex[] = $index; @@ -77,7 +77,7 @@ class ExamRepository extends BaseRepository if (!empty($params['begin']) && !empty($params['end']) && empty($params['duration'])) { return true; } - if (empty($params['begin']) && empty($params['end']) && ctype_digit((string)$params['duration']) && $params['duration'] > 0) { + if (empty($params['begin']) && empty($params['end']) && isset($params['duration']) && ctype_digit((string)$params['duration']) && $params['duration'] > 0) { return true; }