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

Метод exists

Метод exists класса Rule предназначен для проверки существования значения в определённой колонке таблицы базы данных. Он часто используется в правилах валидации форм, чтобы убедиться, что переданное значение соответствует существующей записи в связанной таблице. Первым параметром передаётся имя таблицы, вторым - имя колонки (по умолчанию используется имя поля, которое валидируется).

Синтаксис

<?php use Illuminate\Validation\Rule; Rule::exists($table, $column = null); ?>

Пример

Проверим, что переданный 'category_id' существует в таблице 'categories':

<?php namespace App\Http\Controllers; use App\Models\Category; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class CategoryController extends Controller { public function store(Request $request) { $request->validate([ 'category_id' => [ 'required', Rule::exists('categories', 'id'), ], ]); $res = Category::find($request->category_id); echo $res->name; } } ?>

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

"Electronics"

Пример

Проверим, что переданный 'email' существует в таблице 'users':

<?php namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class UserController extends Controller { public function update(Request $request) { $request->validate([ 'email' => [ 'required', 'email', Rule::exists('users', 'email'), ], ]); $res = User::where('email', $request->email)->first(); echo $res->name; } } ?>

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

"John Doe"

Пример

Используем метод exists с дополнительным условием для проверки существования активной категории:

<?php namespace App\Http\Controllers; use App\Models\Category; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class CategoryController extends Controller { public function store(Request $request) { $request->validate([ 'category_id' => [ 'required', Rule::exists('categories', 'id')->where(function ($query) { $query->where('active', true); }), ], ]); $res = Category::find($request->category_id); echo $res->name; } } ?>

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

"Books"

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

  • метод unique,
    который проверяет уникальность значения в таблице
  • метод in,
    который проверяет, что значение входит в заданный массив
  • метод email,
    который проверяет корректность email-адреса
  • метод when,
    который условно применяет правила валидации
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить