【问题标题】: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
  • 不应该是框架自带的吗?

标签: php laravel namespaces laravel-5 illuminate-container


【解决方案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 中引入的新行为/错误。见stackoverflow.com/q/59149877/1467680
猜你喜欢
  • 2015-05-21
  • 2015-08-31
  • 1970-01-01
  • 2018-04-02
  • 2021-09-25
  • 2018-03-16
  • 2016-03-13
  • 2015-07-12
  • 1970-01-01
相关资源
最近更新 更多