Создайте пользовательский запрос и не допускайте беспорядка в вашем контроллере, он даже не затронет функцию вашего контроллера, если проверка не пройдена, и может просто получить данные в вашем контроллере, если проверка прошла успешно.
php artisan make:request GroupRequest
В app/Http/Requests/GroupRequest.php
:
public function authorize()
{
// return true;
return request()->user()-isAdmin; // <-- example, but true if anyone can use this form
}
public function rules()
{
return [
'courses' => ['required_without:sections'],
'sections' => ['required_without:courses'],
'group_set_name' => ['required'],
'group_number' => ['required', 'integer', 'min:1'],
];
}
Самое приятное то, что вы даже можете манипулировать данными здесь (GroupRequest.php) после того, как они были проверены:
public function validated()
{
$validated = $this->getValidatorInstance()->validate();
// EXAMPLE: hash password here then just use new hashed password in controller
$validated['password'] = Hash::make($validated['password']);
return $validated;
}
В вашем контроллере:
public function createUser(UserRequest $request) // <- in your case 'GroupRequest'
{
$validated = $request->validated(); // <-- already passed validation
$new_user = User::create($validated); // <-- password already hashed in $validated
return view('dashboard.users.show')->with(compact('user'));
}
В вашем случае, если вы используете мой GroupRequest
блок выше, вы можете вернуться к просмотру в 1 строке кода:
public function createGroups(GroupRequest $request)
{
return view('example.groups.show')->with($request->validated()); // <-- already an array
}
Inвы просматриваете файл, затем вы можете использовать свои переменные, такие как {{ $group_set_name }}
и {{ $group_number }}