Reputation: 5859
I'm getting an error using a request class called RolesRequest in my store function in my controller, I have my controller in an Admin folder under controllers. When I change the name just to RoleRequest I still get the same error and I don't know why, I have tried to do a composer dump-autoload but that doesn't help I still get the same error. I'm using laravel 5.5.4 I think
Error Message:
Class App\Http\Requests\RolesRequest does not exist", exception: "ReflectionException"
// Controller
<?php
namespace App\Http\Controllers\Admin;
use App\Role;
use App\Http\Controllers\Controller;
use App\Http\Requests\RolesRequest;
use Illuminate\Http\Request;
class RolesController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('admin.roles');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(RolesRequest $request)
{
dd('hit');
}
}
// RolesRequest Class
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class RolesRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return Auth::user()->hasRole('Admin');
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
switch($this->method())
{
case 'GET':
case 'DELETE':
{
return [];
}
case 'POST':
{
$unique = [
'name' => 'required|min:3|max:30|unique:roles,name',
];
break;
}
case 'PUT':
case 'PATCH':
{
$unique = [
'name' => 'required|min:3|max:30|unique:roles,name,'. $this->id
];
break;
}
default:break;
}
$rules = [
'display_name' => 'required|min:4|max:50',
'description' => 'required|min:10|max:100'
]
return $unique + $rules;
}
}
Upvotes: 1
Views: 1621
Reputation: 50481
This is one of those fun times when there is more than 1 error happening. You are seeing the second error. The first error is the parser failing on a syntax error in the class you are trying to use. It is trying to load that file and fails so the file is never loaded, hence the class can not be found (the second error).
Its possible the error shown here is (2/2) in the error page. Check your error log to see if it is showing an error before your "class does not exist" error that you are seeing.
The RolesRequest
file has a syntax error before the return
. The array definition statement doesn't have a semicolon at the end.
Upvotes: 1