我想知道为什么我不能从我的控制器访问$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();
}
}