РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
623 of 1392 menu

Правило not_in

Правило not_in используется для валидации полей форм в Laravel. Оно проверяет, что значение поля не входит в переданный массив значений. Если значение присутствует в списке, валидация проваливается. Правило принимает один параметр - массив значений, которые не должны совпадать со значением поля.

Синтаксис

<?php use Illuminate\Support\Facades\Validator; // В виде строки $validator = Validator::make($data, [ 'field' => 'not_in:value1,value2,value3' ]); // В виде массива $validator = Validator::make($data, [ 'field' => ['not_in:value1,value2,value3'] ]); ?>

В качестве значений можно передавать строки или числа, разделённые запятыми.

Пример

Давайте запретим пользователю выбирать статус 'blocked' и 'deleted':

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class UserController extends Controller { public function update(Request $request) { $validator = Validator::make($request->all(), [ 'status' => 'not_in:blocked,deleted' ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } return response()->json(['message' => 'Status updated successfully']); } } ?>

Результат выполнения кода при отправке статуса 'blocked':

["status" => ["The status must not be in the list of values."]]

Пример

Использование правила not_in в Form Request:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class UpdateUserRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return [ 'role' => 'required|not_in:admin,superadmin', 'status' => 'not_in:inactive,banned' ]; } } ?>

При попытке установить роль 'admin' валидация вернёт ошибку:

["role" => ["The role must not be in the list of values."]]

Пример

Использование правила not_in с числовыми значениями:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class ProductController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'quantity' => 'not_in:0,-1,-5', 'price' => 'numeric|not_in:0,0.00' ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } return response()->json(['message' => 'Product created']); } } ?>

Результат выполнения при значении quantity равном 0:

["quantity" => ["The quantity must not be in the list of values."]]

Смотрите также

  • правило in,
    которое проверяет наличие значения в списке
  • правило required,
    которое проверяет заполненность поля
  • правило numeric,
    которое проверяет, что поле содержит число
  • правило exclude_if,
    которое исключает поле из валидации при выполнении условия
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить