0

我目前正在尝试使用 Laravel Envoy ( https://laravel.com/docs/5.8/envoy )。它工作得很好,但我想更进一步,能够使用Illuminate\Foundation\Application类来将一些依赖项注入@setupEnvoy 指令(例如检索一些配置或 Eloquent 模型)。但是无论我尝试什么,我都会不断收到此错误。

在此处输入图像描述

我的Envoy.blade.php文件:

@servers(['localhost' => '127.0.0.1'])

@include('vendor/autoload.php')

@setup
    $laravelApp = include 'bootstrap/app.php';
    dump(config('database'));
@endsetup

@task('foo', ['on' => 'localhost'])
    ls
@endtask

任何帮助将不胜感激,谢谢!

4

2 回答 2

4

我终于找到了我的问题的根源。它来自未调用的 Laravel 引导程序。它们由内核类而不是应用程序调用。所以,我添加了这个以使其工作:

@servers(['localhost' => '127.0.0.1'])

@setup
    define('LARAVEL_START', microtime(true));

    $app = require_once __DIR__.'/bootstrap/app.php';

    $kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);

    $kernel->bootstrap();

    dump(config('database'));
@endsetup

@task('foo', ['on' => 'localhost'])
    ls
@endtask

请注意,引导程序不会自动调用,并且因为我不希望在这个用例上使用 Artisan,所以我bootstrap手动调用了方法。

无论如何感谢您的帮助!

于 2019-07-22T10:02:47.753 回答
0

如果您的 Laravel 在 .env 或数据库文件夹中进行一些修改后或由于任何其他修改而无法按预期工作,则五个最重要的命令。这是完整的解释: https ://www.youtube.com/watch?v=Q1ynDMC8UGg

php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear

请尝试这些,看看它是否有效。

如果它仍然不起作用,请尝试反映该类以确保全局配置没有被任何其他自定义库类覆盖。

于 2019-07-22T09:46:14.663 回答