Правило ends_with
Правило ends_with используется при валидации данных форм
в Laravel. Оно проверяет, что значение поля заканчивается на
одну из переданных подстрок. Правило принимает список строк,
которые должны являться окончанием значения.
Синтаксис
<?php
'field' => 'ends_with:foo,bar,baz'
?>
В качестве параметров передаются строки, на одну из которых должно заканчиваться значение поля.
Пример
Давайте проверим, что поле 'email' заканчивается на
домен '@gmail.com':
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class UserController extends Controller
{
public function store(Request $request)
{
$rules = [
'email' => 'required|ends_with:@gmail.com',
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
return response()->json(['message' => 'Valid email'], 200);
}
}
?>
Пример
Проверим, что поле 'filename' заканчивается на одно
из допустимых расширений изображений:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class FileController extends Controller
{
public function upload(Request $request)
{
$rules = [
'filename' => 'required|ends_with:.jpg,.png,.gif,.webp',
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
$res = $validator->errors()->first();
echo $res;
return;
}
echo 'File uploaded successfully';
}
}
?>
Результат выполнения кода при успешной валидации:
"File uploaded successfully"
Пример
Используем правило ends_with в классе FormRequest:
<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class ProductRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'sku' => 'required|ends_with:-XL,-L,-M,-S',
'name' => 'required|string|max:255',
];
}
}
?>
Теперь в контроллере можно использовать этот запрос:
<?php
namespace AppHttpControllers;
use AppHttpRequestsProductRequest;
class ProductController extends Controller
{
public function store(ProductRequest $request)
{
$validated = $request->validated();
echo 'Product validated';
// Сохранение продукта
}
}
?>
Пример
Проверим, что поле 'username' заканчивается на '_admin'
или '_moderator':
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class AuthController extends Controller
{
public function login(Request $request)
{
$rules = [
'username' => 'required|ends_with:_admin,_moderator',
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
echo 'Username must end with _admin or _moderator';
return;
}
echo 'Username is valid';
}
}
?>
Результат выполнения кода при неверном имени пользователя:
"Username must end with _admin or _moderator"
Смотрите также
-
правило
starts_with,
которое проверяет начало строки -
правило
string,
которое проверяет, что значение является строкой -
правило
regex,
которое проверяет значение по регулярному выражению -
правило
required,
которое проверяет наличие поля в запросе