Route.php第339行中的ReflectionException:Laravel 5.3中不存在类App \ Http \ Requests \ CreateTenantRequest

时间:2016-10-25 14:29:44

标签: php validation request laravel-5.3

我使用的是Laravel 5.3。我在尝试提交表单时收到此错误。我用过laravelcollective / html。这是我的代码:

路由/ web.php

Route::resource('add-new-tenant', 'SuperAdmin\TenantController');

Route::resource('new-tenant', 'SuperAdmin\TenantController@store');

控制器:

 <?php

 namespace App\Http\Controllers\SuperAdmin;

 use App\Tenant;

 use App\Http\Requests;
 use App\Http\Requests\CreateTenantRequest;
 use App\Http\Controllers\Controller;

class TenantController extends Controller
{
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{
    return view('pages.superadmin.add-new-tenant');
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \App\Http\Requests\CreateTenantRequest  $request
 * @return \Illuminate\Http\Response
 */
  public function store(CreateTenantRequest $request)
  {
    Tenant::create($request->all());

    return redirect('add-new-tenant');
  }

}

我已经创建了验证表单的请求。代码如下:

应用程序/ HTTP /请求/ CreateTenantRequest.php

 <?php

 namespace App\Http\Requests;

 use Illuminate\Foundation\Http\FormRequest;

class CreateTenantRequest 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 [
        'tenant_company_name' => 'required',
        'tenant_name' => 'required',
        'tenant_email' => 'required|email'
        'tenant_domain' => 'required',
        'tenant_database' => 'required'
    ];
  }
}

我在提交表单时遇到此错误。

 ReflectionException in Route.php line 339:
 Class App\Http\Requests\CreateTenantRequest does not exist

我知道在声明 CreateTenantRequest 时存在一些问题,但请帮助我解决的问题。

谢谢。

3 个答案:

答案 0 :(得分:4)

这只是我的错,当我看到这个时,我把头撞在墙上,我浪费了4个小时,并没有注意到这一点。唯一的错误是

之后缺少逗号(,)
 'tenant_email' => 'required|email',

在CreateTenantRequest.php中。这是:

public function rules()
{
  return [
    'tenant_company_name' => 'required',
    'tenant_name' => 'required',
    'tenant_email' => 'required|email',
    'tenant_domain' => 'required',
    'tenant_database' => 'required'
   ];
 }

感谢您的帮助,抱歉这是我的错。

答案 1 :(得分:1)

这对我来说都很好看。我的猜测是Requests尚未添加到您的自动加载器中。当你收到一条消息说laravel无法找到你知道的东西时,你要做的第一件事就是抛弃自动加载器:

composer dump-autoload

答案 2 :(得分:0)

我同意@Aisha Kamran的回答。当您的自定义表单请求出现语法错误时,会出现此错误消息。这不是一个有用的错误消息。