Правило ip
Правило ip используется в системе валидации Laravel для проверки того, что значение поля является валидным IP-адресом. По умолчанию правило пропускает как IPv4, так и IPv6 адреса. Правило можно комбинировать с другими правилами валидации для более точной проверки. Если поле не передано в запросе, правило не сработает - для обязательности поля нужно использовать правило required.
Синтаксис
<?php
$request->validate([
'field' => 'ip'
]);
?>
Пример
Давайте провалидируем поле 'server_ip' на соответствие IP-адресу:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ServerController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'server_ip' => 'ip'
]);
// Continue with validated data
return response()->json($validated);
}
}
?>
Пример
Валидация IP-адреса с кастомным сообщением об ошибке:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ServerController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'server_ip' => 'ip'
], [
'server_ip.ip' => 'The server IP address must be valid.'
]);
return response()->json($validated);
}
}
?>
Пример
Использование правила ip в FormRequest классе:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ServerRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'server_ip' => 'required|ip',
'client_ip' => 'ip'
];
}
}
?>
Пример
Валидация массива IP-адресов с помощью правила ip:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ServerController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'ip_list' => 'array',
'ip_list.*' => 'ip'
]);
return response()->json($validated);
}
}
?>
Пример
Валидация IP-адреса вместе с дополнительными правилами:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ServerController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'server_ip' => 'required|ip|max:15'
]);
return response()->json($validated);
}
}
?>
Пример
Использование ip правила с пользовательской логикой через объект Rule:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
class ServerController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'server_ip' => [
'required',
'ip'
]
]);
return response()->json($validated);
}
}
?>