【问题标题】:No such file or directory in ...vendor/composer/ClassLoader.php:444 (Laravel)...vendor/composer/ClassLoader.php:444 (Laravel) 中没有这样的文件或目录
【发布时间】:2020-07-12 05:40:04
【问题描述】:

我正在用 Laravel 编写代码。当我尝试用表单中的文件发帖时,它会抛出以下异常:

得到错误'PHP消息:PHP致命错误:未捕获的ErrorException:包括(/var/www/vhosts/web2/httpdocs/vendor/composer/../../app/Exceptions/Handler.php):未能打开流:/var/www/vhosts/web2/httpdocs/vendor/composer/ClassLoader.php:444 中没有这样的文件或目录\n堆栈跟踪:\n#0
. . .

n#5 /var/www/vhosts/web2/httpdocs/vendor/laravel/framework/src/Illuminate/Container/Container.php(803): ReflectionClass->__construct('App\...', referer : (隐藏)

add.blade.php:

@include('flash::message')
<form class="form-horizontal" enctype="multipart/form-data" action="{{action('SheetController@add')}}" method="post">
@csrf
<div class="form-group">
  <label class="col-md-4 control-label" for="icao">ICAO</label>  
  <div class="form-group col-md-4">
    <input placeholder="i.e. SAAC" class="form-control input-md" id="icao" name="icao" type="text" required />
  </div>
</div>

<div class="form-group">
  <label class="col-md-4 control-label" for="fir">FIR</label>  
  <div class="col-md-4">
    <select id="fir" name="fir" class="form-control input-md" required>
    <option value="SAEF">Ezeiza</option>
    <option value="SACF">C&oacute;rdoba</option>
    <option value="SAMF">Mendoza</option>
    <option value="SAVF">Comodoro Rivadavia</option>
    <option value="SARR">Resistencia</option>
   </select>
  </div>
</div>

<div class="form-group">
  <label class="col-md-4 control-label" for="version">Version</label>  
  <div class="form-group col-md-4">
    <input placeholder="i.e. 1.2" class="form-control input-md" id="version" name="version" type="text" required />
  </div>
</div>

<!-- File input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="sheetfile">Archivo</label>  
  <div class="col-md-4">
    <input id="sheetfile" name="sheetfile" class="form-control input-md" required type="file">
  </div>
</div>

<hr style="margin-bottom:20px;">

<div class="form-group">
  <div class="btn-group">
    <button type="submit" class="btn btn-success">Add</button>
    <input type="reset" class="btn btn-warning" value="Reset" />
  </div>
</div>

</form>

SheetController.php:

public function add(Request $request)
{
    if(!empty($request->all()))
    {
        $sheet = new Sheet();
        $sheet->icao = $request->icao;
        $sheet->fir = $request->fir;
        $sheet->version = $request->version;

        $newName = $sheet->icao.'_v'.$sheet->version.'.pdf';

        if($request->file('sheetfile')->getClientOriginalExtension() != 'pdf')
        {
            flash()->error('File not allowed')->important();
        }
        else if($request->imagen->storeAs('ATC/Sheets', $newName, 'files'))
        {
            if($sheet->save()) flash()->success('Sheet added')->important();
            else flash()->error($sheet->errors()->first())->important();
        }
        else flash()->error('The file could not be uploaded.')->important();
    }
    return redirect()->action('SheetController@list');
}

我已经尝试过composer updatecomposer dump-autoload

有什么想法吗?

【问题讨论】:

  • 删除/vendor文件夹,然后运行composer du再试一次。确保/vendor中没有自定义代码
  • 不起作用:第 14 行的 \bootstrap\app.php PHP 致命错误:未捕获的错误:在 \boot #0 \artisan(20) 中找不到类“Illuminate\Foundation\Application”: require_once() #1 {main} 在 strap\app.php:14 中抛出 堆栈跟踪:#0 \artisan(20): require_once() #1 {main} 在第 14 行的 \bootstrap\app.php 中抛出 脚本 @php artisan package:discover --ansi 处理 post-autoload-dump 事件,返回错误代码 255
  • 我认为composer du 在供应商文件夹中使用了一些脚本
  • 愚蠢的我。删除vendor文件夹后使用composer install
  • 如果还是不行,我坚信您使用的是过时版本的作曲家,或者package.json 已损坏。尝试安装最新版本的composer,然后重复上述步骤

标签: php laravel exception classloader handler


【解决方案1】:

你可以简单地做,

composer update

对我来说效果很好。

【讨论】:

  • 表达得很正确。
【解决方案2】:

如果 composer dump-autoload 对你不起作用,那么错误会告诉你在我的情况下缺少一个目录,数据库目录中没有迁移文件夹。

解决方案:在数据库目录中创建迁移文件夹。您可以使用 IDE 或 Windows 的文件资源管理器执行此操作。如果您使用 Git Bash,请 cd 到项目的数据库文件夹,然后执行 mkdir 迁移以创建缺少的迁移目录。

【讨论】:

    【解决方案3】:

    只是在做

    composer dump-autoload
    

    为我工作。

    【讨论】:

      【解决方案4】:

      我使用这个工匠命令修复了

      php artisan cache:clear 
      php artisan clear:config
      

      【讨论】:

        【解决方案5】:

        你可以试试;

        composer dump-autoload
        

        在根文件夹内。

        【讨论】:

        • 我已经试过了。如果我尝试数据库部分,它可以完美运行,但我认为问题在于文件部分
        • 好的,我终于解决了这个问题。这是一个编程错误。
        • $request->imagen 不存在。一定是 $request->sheetfile 哈哈
        • 谢谢你们的帮助
        • 请在您的答案中添加一些解释 - 为什么要尝试这样做?请记住,其他人应该能够从您的回答中学习
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-25
        • 2018-02-25
        • 2021-09-26
        • 1970-01-01
        • 2020-06-28
        • 2019-03-16
        • 2019-10-14
        相关资源
        最近更新 更多