问题描述
我正在尝试将dompdf
与Laravel一起使用,即使我使用'use PDF'还是错误。
这是我的控制人
<?PHP
namespace App\Http\Controllers;
use RealRashid\SweetAlert\Facades\Alert;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Pasien;
use Illuminate\Support\Facades\Redirect;
use PDF;
class PasienController extends Controller {
/**
* display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index() {
$pasien = DB::table('pasien')->paginate(5);
return view('pasien/index',['pasien' => $pasien]);
}
public function createPDF() {
// retreive all records from db
$data = Pasien::all();
// share data to view
view()->share('employee',$data);
$pdf = PDF::loadView('pdf_view',$data);
// download PDF file with download method
return $pdf->download('pdf_file.pdf');
}
}
此行中的PDF为红色
$ pdf = PDF :: loadView('pdf_view',$ data);
未定义类型“ PDF”
我已将其放入提供商中
Barryvdh \ DomPDF \ ServiceProvider :: class,
这是别名
'PDF'=> Barryvdh \ DomPDF \ Facade :: class,
我已经使用composer安装了该软件包,并且PHP artisan厂商也发布了该软件包。
解决方法
在我的情况下有效
Application.Current.Resources
我在$pdf = \PDF::loadView('...');
类名前添加了\
和PDF
。
在类名开头之前的loadView
代表Global Namespace。
Maulik答案与Khalid khan的结合确实对我有帮助,并且确实有效!
代替
使用PDF;
使用此功能(即使我听说您可以使用“使用PDF”,但还是可以!)
使用Barryvdh \ DomPDF \ PDF;
然后输入此命令
php artisan config:cache
重置所有内容,退出IDE,重新启动服务器,然后尝试再次打开项目。
您可以先尝试清除缓存,然后再修改代码,或尝试另一种方式。
,我刚刚在我的 providers 数组中添加了 Barryvdh\DomPDF\ServiceProvider::class
(在 'PDF' => Barryvdh\DomPDF\Facade::class
(在同一个文件中)它对我有用!
注意 1:我使用的是 Laravel 8.0.3
注意2:不要忘记运行这个:
composer require barryvdh/laravel-dompdf