laravel 5.4: PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::configure()

laravel 5.4: PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::configure()

我是 laravel 的新手。我正在尝试使用来自 barryvdh 的 Snappy PDF。我按照 https://github.com/barryvdh/laravel-snappy 的说明安装了 snappy pdf。但是当我 运行 php artisan serve 命令显示以下错误时

PHP 致命错误:调用未定义的方法 Illuminate\Foundation\Application::configure() in F:\xampp\htdocs\Laravel\doctorApp\vendor\barryvdh\laravel-snappy\src\LumenServiceProvider.php 第 21 行

这是我的 LumenServiceProvider.php:

public function register()
{
   $this->app->configure('snappy'); // line 21

   $configPath = __DIR__ . '/../config/snappy.php';
   $this->mergeConfigFrom($configPath, 'snappy');
}

我已经使用这个安装了 wkhtmltopdf:

$ composer require h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x

在 config/app.php 我在我的提供者和别名中添加了以下行:

在提供商中:Barryvdh\Snappy\ServiceProvider::class,

别名:

'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,

我的配置文件中二进制文件的路径 (config/snappy.php):第一个用于 pdf..

'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),

第二张图片...

'binary' => base_path('vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64'),

我的bootstrap/app.php:

<?php

$app = new Illuminate\Foundation\Application(
    realpath(__DIR__.'/../')
);

/*snappy pdf start--- i added this part*/
class_alias('Barryvdh\Snappy\Facades\SnappyPdf', 'PDF');
$app->register(Barryvdh\Snappy\LumenServiceProvider::class);

//Optionally, add the facades like so:

class_alias(Barryvdh\Snappy\Facades\SnappyPdf::class, 'PDF');
class_alias(Barryvdh\Snappy\Facades\SnappyImage::class, 'SnappyImage');

/*snappy pdf end*/


$app->singleton(
    Illuminate\Contracts\Http\Kernel::class,
    App\Http\Kernel::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);

$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);


return $app;

在我的控制器中我添加了:

use Barryvdh\Snappy\Facades as PDF;

这是我的控制器:

public function PdfView(Request $request, $patient_id)
{
   $patients = Patient::where('id', $patient_id)->first();
   $pdf = PDF::loadView('pdfview', ['patients'=>$patients]);
   return $pdf->download('pdfview.pdf');

}

有人能说说为什么会出现这个错误以及如何解决这个问题吗?

如果您正在使用 Laravel,则不应使用 LumenServiceProvider,但是:

Barryvdh\Snappy\ServiceProvider::class,

如软件包文档中所述

编辑

好的,我再读一遍,发现问题不一样了。您添加了:

class_alias('Barryvdh\Snappy\Facades\SnappyPdf', 'PDF');
$app->register(Barryvdh\Snappy\LumenServiceProvider::class);

//Optionally, add the facades like so:

class_alias(Barryvdh\Snappy\Facades\SnappyPdf::class, 'PDF');
class_alias(Barryvdh\Snappy\Facades\SnappyImage::class, 'SnappyImage');

变成 bootstrap/app.php 但你不应该。这仅适用于 Lumen,不适用于 Laravel