为什么从控制器调用时应用程序未定义?
Why is app undefined when called from controller?
我想知道为什么我无法从我的控制器访问 $app
。
我正在使用我在 app.php
中注册的服务提供商。
$app->register(\Barryvdh\DomPDF\ServiceProvider::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()
辅助方法(参见 Lumen docs)来获取 class.
的实例
这是我使用的示例。
routes/web.php
<?php
/** @var \Laravel\Lumen\Routing\Router $router */
$router->get('/', 'ExampleController@index');
app/Http/Controllers/ExampleController.php
<?php
namespace App\Http\Controllers;
use Dompdf\Dompdf;
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();
}
}
我想知道为什么我无法从我的控制器访问 $app
。
我正在使用我在 app.php
中注册的服务提供商。
$app->register(\Barryvdh\DomPDF\ServiceProvider::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()
辅助方法(参见 Lumen docs)来获取 class.
这是我使用的示例。
routes/web.php
<?php
/** @var \Laravel\Lumen\Routing\Router $router */
$router->get('/', 'ExampleController@index');
app/Http/Controllers/ExampleController.php
<?php
namespace App\Http\Controllers;
use Dompdf\Dompdf;
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();
}
}