未找到 Laravel 5 类“App\Http\Controllers\File”

Posted

技术标签:

【中文标题】未找到 Laravel 5 类“App\\Http\\Controllers\\File”【英文标题】:Laravel 5 Class 'App\Http\Controllers\File' not found未找到 Laravel 5 类“App\Http\Controllers\File” 【发布时间】:2015-06-24 15:18:53 【问题描述】:

我收到以下错误:

Class 'App\Http\Controllers\File' not found

在 laravel 5 控制器中使用时:

$files = File::files( $this->csvDir );

我必须将Filesystem 添加到composer.jsonconfig/app.php。不知何故,我使用了错误的配置。

这就是我改变的:

composer.json

    "require": 
        "laravel/framework": "5.0.*", 
        "illuminate/html": "5.*",
        "illuminate/filesystem": "5.*"  /* my try to repo */
    ,

配置/app.php

    'providers' => [

    // [...] 
    // jerik 2015-04-17: get html Forms
    // http://laravel.io/forum/09-20-2014-html-form-class-not-found-in-laravel-5
    'Illuminate\Html\HtmlServiceProvider', 
    'Illuminate\Filesystem\FilesystemServiceProvider', // try to add file

当我运行composer update 时,它运行良好,但没有输出文件系统已下载。所以我的配置是错误的,但我不知道正确的方法。

有什么建议或提示吗?

【问题讨论】:

代替$files = File::files( $this->csvDir ); 试试$files = \File::files( $this->csvDir ); 我认为你没有在 app.php 中添加 Facade 不应该是框架自带的吗? 【参考方案1】:

首先你应该考虑使用内置的存储门面。除非您使用 S3 或 Rackspace,否则您无需手动包含 Filesystem,因为它已默认包含 - 请查看 Filesystem in Laravel 5 documentation。

看来,你应该导入File 所以试试

use File;

\File 来解决问题,因为现在您正在使用当前命名空间中的文件,并且File 可能未在App\Http\Controllers 命名空间中定义

【讨论】:

我希望 Laravel/artisan 自动添加“使用 App[Model];”到创建控制器时的顶部。 未定义符号'文件'.intelephense(1002) @sabertababaeyazdi,您是否知道如何在 VSCode 中消除该错误消息?我得到了同样的结果,即使代码运行良好。 @sabertababaeeyazdi 看起来像是最新版本的 Intellephense 中引入的新行为/错误。见***.com/q/59149877/1467680

以上是关于未找到 Laravel 5 类“App\Http\Controllers\File”的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 错误:未捕获的 ReflectionException:类 App\Http\Kernel 不存在

Laravel 5.1 错误调用未定义函数 App\Http\Controllers\Auth\sendRegistermail()

Laravel 5 未找到类“Illuminate\Html\HtmlServiceProvider”

未找到 Laravel 5 类“表单”

未找到 Laravel 5 类“Illuminate\Support\Facades\FormFacade”

Lumen 中的中间件身份验证 [未找到“身份验证”类]