1

When I use Request validation in a Controller Method, this error is returned:

ReflectionException in Container.php line 776: Class guest does not exist

My request file is the follow:

<?php namespace App\Http\Requests;

use App\Http\Requests\Request;

class LoginFormRequest extends Request {

public function authorize()
{
    return true;
}

public function rules()
{

    switch($this->method())
    {
        case 'GET':
        case 'DELETE':
        {
            return [];
        }
        case 'POST':
        {
            return [                
                "name"                  => "required|alpha_num|min:3",
                "email"                 => "required|email",
                "password"              => "required|min:6|confirm",
                "password_confirmation" => "required",
                "gender"                => "required",
                "birthday"              => "required",              
            ];
        }
        case 'PUT':
        case 'PATCH':
        {
            return [

            ];
        }
        default:
            return [];
        break;
    }
}

}

And my controller is the follow:

<?php namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Requests\LoginFormRequest;
use Request;

use App\Models\AppUser as AppUser;

class LoginController extends Controller {

protected $pass_key = "some_key";

public function check()
{
   ...
}

public function store(LoginFormRequest $request)
{       

    $data = Request::all();

    $data['password'] = md5($this->pass_key.$data['password']);

    $app_user = AppUser::create($data);

    return response()->json([
            'success' => true,
            'message' => 'Bem vindo(a)!',
            'app_user' => $app_user
        ]);
}

}

My request is for the store method called by route api/register.

$router->group(['middleware' => 'Api'], function() { 

Route::post('api/login',    ['as' => 'api.login',       'uses' => 'Api\LoginController@check']);
Route::post('api/register', ['as' => 'api.register',    'uses' => 'Api\LoginController@store']);

});

When I remove the indexes of the array in the POST rules, error not is showed.

Someone can help me?

leoalmar
  • 226
  • 5
  • 14

1 Answers1

2

In your request file

use Illuminate\Http\Request

because your class LoginFormRequest extends Request in Laravel. You should be. In your controller

$data = LoginFormRequest::all();
mydo47
  • 379
  • 1
  • 8
  • When I used `Illuminate\Http\Request` the error was corrected, but the request validation don't works. I can send a **empty** post request and the controller is executed. I have other FormRequest that is working with `App\Http\Requests\Request`. In this case I'm using the Postman REST Client app to test this request. You think that exists a relation about this error? Session or Cookies are related with a request validation? – leoalmar Apr 27 '15 at 18:31
  • In your request file `abstract class LoginFormRequest extends FormRequest` and `use Illuminate\Foundation\Http\FormRequest;` . I don't see you use LoginFormRequest in controller. I think you should use `$data = $request->all()` or `$data = LoginFormRequest::all(); ` – mydo47 Apr 28 '15 at 02:26