当我想要实例化Factory时,我收到此错误。我需要实例化,因为有一个方法make()
来渲染刀片文件。
[Symfony \ Component \ Debug \ Exception \ FatalThrowableError]不能 实例化界面Illuminate \ Contracts \ View \ Factory
源代码
<?php
namespace App\Core;
use Spipu\Html2Pdf\Html2Pdf;
use Spipu\Html2Pdf\Exception\Html2PdfException;
use Spipu\Html2Pdf\Exception\ExceptionFormatter;
use Illuminate\Contracts\View\Factory as ViewFactory;
class PDFGenerator
{
private $view;
public function __construct()
{
$this->view = new ViewFactory();
$this->generatePDF();
}
public function generatePDF()
{
$html = $this->loadView('template');
public function loadView($view, $data = array(), $mergeData = array(), $encoding = null){
return $this->view->make($view, $data, $mergeData)->render();
}
}
答案 0 :(得分:2)
您似乎对工厂/界面的工作方式存在误解。 接口的一点是你不实例化它,你只有方法名称和参数,所以每个实现它的类都有统一的接口。
在这种情况下,如果您查看Illuminate\Contracts\View\Factory
,您会发现此处没有真正的处理,只有代码表示&#34;好的,这就是这个方法会做什么,什么它预期的输入和将给出的输出&#34;。你会发现没有提到如何去做,实现该接口的类是那个想知道如何去做的人,而不是接口。
解决您的问题
当您想要渲染视图时,您有2个选项
view()
helper function。 (首选)View::make()
Facades View
方法
醇>