我已经尝试了几天来在我的网络应用上启用PDF。 但是,我无法使其发挥作用。
我配置了以下内容:
// AppController.php
class AppController extends Controller
{
/**
* Initialization hook method.
*
* Use this method to add common initialization code like loading components.
*
* e.g. `$this->loadComponent('Security');`
*
* @return void
*/
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
// some other code for authentication
}
}
// bootstrap.php (at the end of the file)
Plugin::load('CakePdf', ['bootstrap' => true, 'routes' => true]);
Configure::write('CakePdf', [
'engine' => 'CakePdf.DomPdf',
'margin' => [
'bottom' => 15,
'left' => 50,
'right' => 30,
'top' => 45
],
'download' => true
]);
// routes.php
Router::defaultRouteClass(DashedRoute::class);
// Add PDF Extensions
Router::extensions(['pdf']);
Router::scope('/', function (RouteBuilder $routes) {
// OrdersController.php
public function view($id = null)
{
// some code
$this->viewBuilder()->options([
'pdfConfig' => [
'title' => 'Work Order PDF',
'filename' => 'workorder'
]
]);
// other code
}
我创建了一个子文件夹' pdf'在Template \ Orders中我有一个view.ctp文件。我在Layout \ pdf中也有一个default.ctp和BootstrapUI.default.ctp(我也使用FriendsOfCake / bootstrap-ui)。
我已经尝试过WkHtmlToPdf(下载二进制文件并安装它)和DomPdf(在PhpStorm中使用作曲家下载并实现它),但它不起作用。
我收到消息"在此服务器上找不到请求的资源/orders/view/28.pdf。"
我忘了什么?