为什么从控制器调用app时未定义?



我想知道为什么我不能从我的控制器访问$app

我正在使用我在app.php中注册的这个服务提供商。

$app->register(BarryvdhDomPDFServiceProvider::class);

文档告诉我这样使用它(从控制器):

$pdf = $app->make('dompdf.wrapper');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->stream();

或:

$pdf = App::make('dompdf.wrapper');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->stream();

这两种方法都会给我以下错误

Undefined variable: app

我怎样才能使它工作?

在Lumen中,您应该使用app()helper方法(参见Lumen文档)来获取类的实例。

这是我用的一个例子。

routes/web.php

<?php
/** @var LaravelLumenRoutingRouter $router */
$router->get('/', 'ExampleController@index');

app/Http/Controllers/ExampleController.php

<?php
namespace AppHttpControllers;
use DompdfDompdf;
class ExampleController extends Controller
{
public function index()
{
/** @var Dompdf $pdf */
$pdf = app('dompdf');
$pdf->loadHTML('<h1>Test</h1>');
// Output whatever you like
return $pdf->outputHtml();
}
}

相关内容

  • 没有找到相关文章