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

Метод unique

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

Синтаксис

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

Пример

Давайте проверим, что значение поля 'email' уникально в таблице 'users':

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class UserController extends Controller { public function store(Request $request) { $request->validate([ 'email' => ['required', 'email', Rule::unique('users')], ]); // Saving user... } } ?>

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

"The email has already been taken."

Пример

Давайте проверим уникальность поля 'username' в таблице 'users', явно указав имя колонки:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class UserController extends Controller { public function store(Request $request) { $request->validate([ 'username' => ['required', 'string', Rule::unique('users', 'username')], ]); // Saving user... } } ?>

Пример

Давайте проверим уникальность поля 'slug' при обновлении записи, игнорируя текущую запись:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Validation\Rule; use App\Models\Post; class PostController extends Controller { public function update(Request $request, Post $post) { $request->validate([ 'slug' => ['required', 'string', Rule::unique('posts')->ignore($post->id)], ]); // Updating post... } } ?>

Пример

Давайте проверим уникальность поля 'email' с дополнительным условием для колонки 'account_id':

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class UserController extends Controller { public function store(Request $request) { $request->validate([ 'email' => [ 'required', 'email', Rule::unique('users')->where(function ($query) use ($request) { return $query->where('account_id', $request->account_id); }), ], ]); // Saving user... } } ?>

Пример

Давайте проверим уникальность поля 'phone' при обновлении, игнорируя запись с указанным id и колонкой:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class UserController extends Controller { public function update(Request $request, $id) { $request->validate([ 'phone' => [ 'required', 'string', Rule::unique('users', 'phone')->ignore($id, 'user_id'), ], ]); // Updating user... } } ?>

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

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