Search code examples
laravellaravel-5.7laravel-request

How to Use custom request (make:request)? (laravel) Method App\Http\Requests\Custom::doesExistI does not exist


I created a custom request to make my own validation. As i follow these article.

I created ProfileRequest

php artisan make:request ProfileRequest

Inside my ProfileRequest

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ProfileRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required|min:10',
            'age' => 'required|numeric'
        ]; 
    }
}


My problem is when I use the ProfileRequest inside the controller, like below:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
class ProfileController extends Controller
{
    public function update(ProfileRequest $request){
        return "123";
    }
}

It returns an error like these below:

Class App\Http\Controllers\ProfileRequest does not exist

I need your help Sirs. Somebody know how to use the custom request?


Solution

  • In ProfileRequest change extends FormRequest to extends Request. Then add use Illuminate\Http\Request; above the class. Code should look like below.

    <?php
    
    namespace App\Http\Requests;
    
    use Illuminate\Http\Request;
    
    class ProfileRequest extends Request
    {
        /**
         * Determine if the user is authorized to make this request.
         *
         * @return bool
         */
        public function authorize()
        {
            return true;
        }
    
        /**
         * Get the validation rules that apply to the request.
         *
         * @return array
         */
        public function rules()
        {
            return [
                'name' => 'required|min:10',
                'age' => 'required|numeric'
            ]; 
        }
    }
    

    Then put App\Http\Requests\ProfileRequest; in your controller.