Hello Devs, 

In his tutorial, we will learn Laravel Exists Validation Example

The field under validation must exist in a given database table. You may explicitly specify the database column name that should be used by the validation rule by placing it after the database table name:

Follow this step by step guide below, 

 Solution:

$request->validate([
    'username' => 'required|exists:users,name',
]);


Solution With Rule:

use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;

$validator = Validator::make($request->all(), [
    'name' => [
        'required',
        Rule::exists('users')->where(function ($query) {
            $query->where('id', 1);
        }),
    ],
]);


Full Example:

Add Route

use App\Http\Controllers\ValidationController;

Route::get('exists',[ValidationController::class,'existsValidation']);
Route::post('store-exists',[ValidationController::class,'existsStore'])->name('store.exists');

Controller : app/Http/Controllers/ValidationController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ValidationController extends Controller
{
    public function existsValidation()
    {
        return view('validation.existsValidation');
    }

    public function existsStore(Request $request)
    {
        $request->validate([
            'username' => 'required|exists:users,name',
        ]);
    }
}

View : resources/views/validation/lteValidation.php

<!DOCTYPE html>
<html>
<head>
    <title>Laravel Exists Validation Example</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css" integrity="sha512-oc9+XSs1H243/FRN9Rw62Fn8EtxjEYWHXRvjS43YtueEewbS6ObfXcJNyohjHqVKFPoXXUxwc+q1K7Dee6vv9g==" crossorigin="anonymous" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.3/js/bootstrap.min.js" integrity="sha512-8qmis31OQi6hIRgvkht0s6mCOittjMa9GMqtK9hes5iEQBQE/Ca6yGE5FsW36vyipGoWQswBj/QBm2JR086Rkw==" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha512-mSYUmp1HYZDFaVKK//63EcZq4iFWFjxSL+Z3T/aCt4IO9Cejm03q3NKKYN6pFQzY0SBOr8h+eCIAZHPXcpZaNw==" crossorigin="anonymous" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha512-T/tUfKSV1bihCnd+MxKD0Hm1uBBroVYBOYSk1knyvQ9VyZJpc/ALb4P0r6ubwVPSGB2GvjeoMAJJImBG12TiaQ==" crossorigin="anonymous"></script>
</head>
<body>
    <div class="container mt-5">
        <div class="row">
            <div class="col-md-8 offset-2 mt-5">
                <div class="card">
                    <div class="card-header bg-info text-white">
                        <h3><strong>Laravel Exists Validation Example</strong></h3>
                    </div>
                    <div class="card-body">
                        <form action="{{ route('store.exists') }}" method="post">
                            @csrf
                            <div class="form-group">
                                <label>Username :</label>
                                <input class="form-control" name="username" value="{{ old('username') }}">
                                @if($errors->has('username'))
                                    <span class="text-danger">{{ $errors->first('username') }}</span>
                                @endif
                            </div>
                            <div class="form-group">
                                <button class="btn btn-success btn-sm">Save</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>


Run Your Project


php artisan serve

open bellow URL on your browser:

http://localhost:8000/exists


May this example help you.