Laravel 5中未找到'App\Http\Controllers\File'类

31

我得到了以下错误:

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

在 Laravel 5 的控制器中使用时:

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

我必须将文件系统添加到composer.jsonconfig/app.php中。不知何故,我出现了错误配置。

这是我所做的更改:

composer.json

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

config/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时,它运行得不错,但没有输出表明Filesystem已经下载。因此,我的配置有误,但我不知道正确的方法。

有什么建议或提示吗?


2
尝试使用 $files = \File::files( $this->csvDir ); 替代 $files = File::files( $this->csvDir ); - Fabio Antunes
我认为你还没有在app.php中添加Facade。 - ArjanSchouten
这个不应该随着框架一起提供吗? - user1669496
1个回答

77

首先,您应该考虑使用内置的Storage外观。除非您使用S3或Rackspace,否则不需要手动包含 Filesystem ,因为它已经默认包含-请查看Laravel 5文档中的Filesystem

此外,似乎您应该导入文件,可以尝试以下操作:

use File;

或者使用\File来解决这个问题,因为现在你正在使用当前命名空间中的File,而File可能没有在App\Http\Controllers命名空间中定义。


我希望在 Laravel/artisan 创建控制器时,它能自动将"use App[Model];"添加到控制器顶部。 - Andrew Koper
1
未定义符号'File'。intelephense(1002) - saber tabatabaee yazdi
1
@sabertabatabaeeyazdi,你解决了如何在VSCode中消除那个错误信息的问题吗?即使代码运行良好,我也会遇到相同的问题。 - monkeyhybrid
1
@sabertabatabaeeyazdi 看起来 Intellephense 的最近版本引入了新的行为/错误。请参见 https://dev59.com/SFIH5IYBdhLWcg3wjfq4 - monkeyhybrid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接