Search code examples
phplaravellaravel-api

How to create custom validation rule in Laravel 6 API


I need to use my custom validation rule for validating API requests.

Request Class:

This is my request validation rule.

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class LoginRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'username' => 'required',
            'password' => 'required'
        ];
    }
    public function messages()
    {
        return [
            'username.required' => 'The Username field is required',
            'password.required'  => 'The Password field is required'
        ];
    }
}

API Controller:

This is my API controller and method.

use Illuminate\Http\Request;
use App\Http\Controllers\API\BaseController as BaseController;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests\LoginRequest;

class LoginController extends BaseController
{
    public function login(LoginRequest $request)
    {
        print_r($validatorMsg);
        die();
    }
}

Unable to get error message.


Solution

  • guys, I resolved the problem this is the solution:

    public function login(Request $request)
    {
        $LoginRequest = New LoginRequest;
        $validator = Validator::make($request->all(), $LoginRequest->rules(),$LoginRequest->messages());
    
        if($validator->fails()){
            return response()->json($validator->errors(), 422);      
        }
    }