【问题标题】:ReflectionException in Route.php line 339: Class App\Http\Requests\CreateTenantRequest does not exist in Laravel 5.3Route.php 第 339 行中的 ReflectionException:类 App\Http\Requests\CreateTenantRequest 在 Laravel 5.3 中不存在
【发布时间】:2016-10-25 14:29:43
【问题描述】:

我正在使用 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');
  }

}

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

app/Http/Requests/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 存在一些问题,但请帮助我解决我所缺少的问题。

谢谢。

【问题讨论】:

    标签: php validation request laravel-5.3


    【解决方案1】:

    这只是我的错,当我看到这个时,我把头撞在墙上,我浪费了 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'
       ];
     }
    

    感谢您的帮助,对不起,这是我的错。

    【讨论】:

      【解决方案2】:

      在我看来一切正常。我的猜测是 Requests 尚未添加到您的自动加载器中。每当您收到一条消息说laravel 找不到您知道的东西,并且可以看到您已正确包含在您的类中时,要做的第一件事就是转储自动加载器:

      composer dump-autoload

      【讨论】:

      • 我尝试使用 composer dump-autoload 但它抛出错误失败并返回代码 0 并生成消息生成自动加载文件。你能帮我解决这个问题吗?
      • 在没有看到实际消息和项目设置方式的情况下很难调试作曲家问题。在laravel 作曲家使用PSR-4,因此值得检查您的namespaces 是否与您的文件夹结构匹配。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2019-02-20
        • 1970-01-01
        • 1970-01-01
        • 2018-11-05
        • 1970-01-01
        • 2017-03-01
        • 2016-08-09
        • 1970-01-01
        • 2017-05-07
        相关资源
        最近更新 更多