1

当我在控制器方法中使用请求验证时,会返回此错误:

Container.php 第 776 行中的 ReflectionException:来宾类不存在

我的请求文件如下:

<?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;
    }
}

}

我的控制器如下:

<?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
        ]);
}

}

我的请求是针对路由api/register调用的store方法。

$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']);

});

当我在 POST 规则中删除数组的索引时,不会显示错误。

有人可以帮助我吗?

4

1 回答 1

2

在您的请求文件中

use Illuminate\Http\Request

因为你的类 LoginFormRequest 扩展了 Laravel 中的 Request 。你应该。在您的控制器中

$data = LoginFormRequest::all();
于 2015-04-27T03:13:46.507 回答