使用错误时未定义的变量即将到来

I have made a simple form when I am calling the form from api route it is showing an error that "errors" is an undefined variable when I am calling using web route it just works fine and shows no error. Why is this happening? Since error is a pre defined variable but why is it showing error.

Layout file:

 @extends('layout')

    @section('content')
        <h1 class="title">Simple Form</h1>
        <form method="POST" action="/website/atg/public/projects">
        @csrf
            <div class="field">
            <label class="label" for="name">Name</label>

            <div class="control">
                <input type="text" class="input" name="name" placeholder="Enter Name" value="{{old('name')}}" required>
            </div>
        </div>

        <div class="field">
            <label class="label" for="email">E-mail</label>

            <div class="control">
                <input type="text" class="input" name="email" placeholder="Enter E-mail Address" value="{{old('email')}}" required>
            </div>
        </div>

        <div class="field">
            <label class="label" for="pincode">Pincode</label>

            <div class="control">
                <input type="text" class="input" name="pincode" placeholder="Enter Pincode" value="{{old('pincode')}}" required>
            </div>
        </div>

        <div class="field">
            <div class="control">
                <button type="submit" class="button">Submit</button>
            </div>
        </div>

        @if($errors->any())
        <div class="notification">
        <ul>
            @foreach($errors->all() as $error)
                <li>{{$error}}</li>
            @endforeach
        </ul>
        </div>
        @endif

        </form>
    @endsection

Routes file:

<?php

use Illuminate\Http\Request;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

/*Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
*/

Route::apiResource('projects','ATGController');

Controller file:

<?php

namespace App\Http\Controllers;

use App\Project;
use App\Mail\ProjectCreated;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;

class ATGController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('projects.index');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
         request()->validate([
        'name'=>'required|unique:projects,name',
        'email'=>'required|email|unique:projects,email',
        'pincode'=>'required|digits:6'
        ]);
        if ($validator->fails()) {

        return redirect('/projects')
        ->withErrors($validator)
        ->withInput();

       }
       else{

        $project=Project::create(request(['name','email','pincode']));
        \Mail::to('sbansal1809@gmail.com')->send(
        new ProjectCreated($project)
        );
        //echo '<script>alert("User added sucessfully!")</script>';
        return response()->json($project);
       }
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Project  $project
     * @return \Illuminate\Http\Response
     */
    public function show(Project $project)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Project  $project
     * @return \Illuminate\Http\Response
     */
    public function edit(Project $project)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Project  $project
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Project $project)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Project  $project
     * @return \Illuminate\Http\Response
     */
    public function destroy(Project $project)
    {
        //
    }
}

you have to return validator fails like this, to be able to get $errors in your blade. Check below example for reference and change the code to your parameters

don't forget to import use Illuminate\Support\Facades\Validator;

 public function store(Request $request){

      $validator = Validator::make($request->all(), [
        'name'=>'required|unique:projects,name',
        'email'=>'required|email|unique:projects,email',
        'pincode'=>'required|digits:6'
       ]);

       if ($validator->fails()) {

        return redirect('/projects/create')
        ->withErrors($validator)
        ->withInput();

       }else{

        $project=Project::create(request(['name','email','pincode']));
        \Mail::to('sbansal1809@gmail.com')->send(
        new ProjectCreated($project)
        );
        //echo '<script>alert("User added sucessfully!")</script>';
        return response()->json($project);
       }
    }