Правило uppercase
Правило uppercase используется для валидации полей формы и проверяет,
что переданное значение содержит только символы в верхнем регистре.
Это правило полезно при работе с кодами, аббревиатурами, идентификаторами
и другими данными, которые должны храниться строго в верхнем регистре.
Правило работает с полями типа string и автоматически отвергает
значения, содержащие символы нижнего регистра, цифры или спецсимволы.
Синтаксис
<?php
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
'field' => 'uppercase'
]);
?>
Пример
Давайте проверим, что поле 'code' содержит только символы
в верхнем регистре:
<?php
use Illuminate\Support\Facades\Validator;
$data = ['code' => 'ABC123'];
$validator = Validator::make($data, [
'code' => 'uppercase'
]);
if ($validator->fails()) {
echo "Validation failed: " . $validator->errors()->first();
} else {
echo "Validation passed";
}
?>
Результат выполнения кода:
"Validation passed"
А теперь передадим значение, содержащее символы нижнего регистра:
<?php
use Illuminate\Support\Facades\Validator;
$data = ['code' => 'abc123'];
$validator = Validator::make($data, [
'code' => 'uppercase'
]);
if ($validator->fails()) {
echo "Validation failed: " . $validator->errors()->first();
} else {
echo "Validation passed";
}
?>
Результат выполнения кода:
"Validation failed: The code field must be uppercase."
Пример
Давайте используем правило uppercase в классе
запроса FormRequest для валидации поля 'country_code':
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CountryRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'country_code' => 'required|uppercase|size:2'
];
}
}
?>
Теперь используем этот запрос в контроллере:
<?php
namespace App\Http\Controllers;
use App\Http\Requests\CountryRequest;
class CountryController extends Controller
{
public function store(CountryRequest $request)
{
$validated = $request->validated();
echo "Country code: " . $validated['country_code'];
}
}
?>
Результат выполнения кода при передаче значения 'RU':
"Country code: RU"
Пример
Правило uppercase можно комбинировать с другими правилами,
например, с alpha и size для проверки буквенных
кодов заданной длины:
<?php
use Illuminate\Support\Facades\Validator;
$data = [
'currency' => 'USD',
'category' => 'ELECTRONICS'
];
$validator = Validator::make($data, [
'currency' => 'uppercase|alpha|size:3',
'category' => 'uppercase|alpha|min:5'
]);
if ($validator->fails()) {
echo "Validation failed";
} else {
echo "All fields are valid";
}
?>
Результат выполнения кода:
"All fields are valid"
Пример
Правило uppercase также можно использовать с
помощью класса Rule для более гибкой настройки:
<?php
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
$data = ['status' => 'ACTIVE'];
$validator = Validator::make($data, [
'status' => [
'required',
Rule::in(['ACTIVE', 'INACTIVE', 'PENDING']),
'uppercase'
]
]);
if ($validator->fails()) {
echo "Validation failed";
} else {
echo "Status is valid";
}
?>
Результат выполнения кода:
"Status is valid"
Смотрите также
-
правило
lowercase,
которое проверяет, что строка содержит только символы в нижнем регистре -
правило
alpha,
которое проверяет, что строка содержит только буквы -
правило
alpha_num,
которое проверяет, что строка содержит только буквы и цифры -
правило
alpha_dash,
которое проверяет, что строка содержит буквы, цифры и дефис