Laravel 5.3项目供应商:发布给出FileNotFoundException

时间:2016-10-18 14:32:05

标签: php laravel laravel-5.3

在一个新的laravel安装中,我已经包含了几个自定义构建包。当我执行

时,这些包正在编写他们的迁移文件
php artisan vendor:publish

然而现在这会产生以下错误

 [League\Flysystem\FileNotFoundException]  File not found at path: 016_01_29_094442_create_xxxxx_2_f_a_tokens_table.php

这并不奇怪,因为实际的文件名是:2016_01_29_094442_xxxxx_2_f_a_tokens_table.php

这就是我的ServiceProvider的样子:

class TwoFAServiceProvider extends ServiceProvider {

    ---- SNIP -----

    public function boot() {
        ---- SNIP -----
        $this->publishMigrations();
    }

    public function publishMigrations() {
        $this->publishes([
            __DIR__ . '/../../migrations/' => base_path('/database/migrations'),
        ], 'migrations');
    }
}

有人知道为什么会发生这种情况,而昨天这种情况完美无缺吗?

- 编辑 -

问题是在补丁版本中对League \ Flysystem进行了更新,他们对路径检查进行了更严格的限制,并在更新中恢复,因此没有人应该解决此问题。

https://github.com/thephpleague/flysystem/issues/712

1 个答案:

答案 0 :(得分:1)

有同样的问题。您应该在路径中使用反斜杠,具体取决于您的文件系统。看看是否有效:

public function publishMigrations() {
    $this->publishes([
        __DIR__ . '\..\..\migrations\\' => base_path('database\migrations'),
    ], 'migrations');
}