Правило alpha
Правило alpha используется для валидации полей формы и проверяет,
что значение поля содержит только буквенные символы. Это правило
позволяет принимать только строки, состоящие из букв латинского
или кириллического алфавита. Если поле содержит цифры, пробелы,
специальные символы или является пустым, валидация не пройдёт.
Правило применяется к строкам и не работает с числами или массивами.
Синтаксис
<?php
'field' => 'alpha'
?>
Правило может быть использовано в массиве правил валидации
вместе с другими правилами, например, required или min.
Пример
В этом примере мы создадим запрос на валидацию поля имени, которое должно содержать только буквы:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class UserController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|alpha|min:2|max:50',
]);
if ($validator->fails()) {
$res = $validator->errors()->all();
print_r($res);
} else {
echo "Validation passed!";
}
}
}
?>
Результат выполнения кода при отправке формы с именем 'John':
"Validation passed!"
Результат выполнения кода при отправке формы с именем 'John123':
Array
(
[0] => "The name must only contain letters."
)
Пример
Использование правила alpha в классе FormRequest:
<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class UserRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'username' => 'required|alpha',
'first_name' => 'alpha',
'last_name' => 'alpha|nullable',
'city' => 'alpha|max:100',
];
}
public function messages()
{
return [
'username.alpha' => 'Username must contain only letters.',
'first_name.alpha' => 'First name must contain only letters.',
'last_name.alpha' => 'Last name must contain only letters.',
];
}
}
?>
Теперь используем этот Request в контроллере:
<?php
namespace AppHttpControllers;
use AppHttpRequestsUserRequest;
class ProfileController extends Controller
{
public function update(UserRequest $request)
{
$validated = $request->validated();
print_r($validated);
}
}
?>
Результат выполнения кода при отправке валидных данных:
Array
(
[username] => "John"
[first_name] => "Doe"
[last_name] => "Smith"
[city] => "NewYork"
)
Пример
Использование правила alpha с другими правилами для проверки
поля 'nickname':
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class AuthController extends Controller
{
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'nickname' => 'required|alpha|min:3|max:20',
'email' => 'required|email',
'password' => 'required|min:8',
]);
if ($validator->fails()) {
$res = $validator->errors()->all();
foreach ($res as $error) {
echo $error . "\n";
}
} else {
echo "Registration successful!";
}
}
}
?>
Результат выполнения кода при отправке формы с ником 'User_123':
"The nickname must only contain letters."
Смотрите также
-
правило
alpha_num,
которое проверяет наличие только букв и цифр -
правило
alpha_dash,
которое проверяет наличие букв, цифр и дефисов -
правило
string,
которое проверяет, что поле является строкой -
правило
required,
которое проверяет наличие поля в запросе