Правило string
Правило string используется для проверки того, что переданное значение является строкой. Оно применяется в массиве правил валидации и может комбинироваться с другими правилами для более сложных проверок. Правило проходит для значений типа string, а также для чисел и булевых значений, которые автоматически приводятся к строке.
Синтаксис
Правило string указывается в массиве правил валидации для соответствующего поля формы:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
$rules = [
'name' => 'string',
];
?>
Пример
Давайте создадим валидатор для проверки поля 'name' на то, что оно является строкой:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
$data = ['name' => 'John'];
$rules = ['name' => 'string'];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
echo "Validation failed";
} else {
echo "Validation passed";
}
?>
Результат выполнения кода:
"Validation passed"
Пример
Теперь давайте проверим, что происходит, если передать не строковое значение:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
$data = ['name' => 123];
$rules = ['name' => 'string'];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
echo "Validation failed";
} else {
echo "Validation passed";
}
?>
Результат выполнения кода:
"Validation failed"
Пример
Правило string часто используется вместе с другими правилами для проверки длины строки. Например, давайте проверим, что поле 'name' является строкой длиной от 2 до 255 символов:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
$data = ['name' => 'John Doe'];
$rules = ['name' => 'string|min:2|max:255'];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
echo "Validation failed";
} else {
echo "Validation passed";
}
?>
Результат выполнения кода:
"Validation passed"
Пример использования в Form Request
Правило string также используется в классах Form Request для централизованной валидации:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UserRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|string|max:255',
'email' => 'required|string|email|unique:users',
'password' => 'required|string|min:8|confirmed',
];
}
}
?>