CakePHP 3+ issue with DomPdf



我当前在项目控制器类中具有一个函数,我正在呼吁将特定项目导出到PDF。当我尝试通过要从中拉的单个项目页面时,我会遇到问题。如果我从我的视图调用函数,并从我的export()函数中传递一串有效的html,它将正确创建一个PDF。我只是想知道如何将其从CTP模板中获取到控制器以创建为PDF。谢谢。

在我的projectscontroller.php

public function view($id)
{
    $creator = $this->Auth->user();
    $project = $this->Projects->get($id, [
        'contain' => [
            'Countries', 'Languages', 'Tags',
            'ProjectsLanguages', 'Students'
        ]
    ]);
    $languages = $this->__getLanguageReqs($id);
    $tags = $this->__getTagReqs($id);
    $projSupervisors = $this->__getSupervisorsProjects($id);
    $this->set('locations',$this->__getLocations($id,"project"));
    $this->set('projSupervisors',$projSupervisors);
    if($creator['role_id'] == 2){
        $this->set('is_owner',in_array($creator['id'],array_keys($projSupervisors)));
    }
    else{
       $this->set('is_owner', false);
    }
    $this->set('languages',$languages);
    $this->set('tags',$tags);
    $this->set('project', $project);
    $this->set('_serialize', ['project']);
}
public function export($id = null) {
    $dompdf = new Dompdf();
    $dompdf->loadHtmlFile('/projects/view/' . $id);
    $dompdf->render();
    $dompdf->output();
    $dompdf->stream('project');
}

在我的视图中。ctp

<button class = 'project_edit' onclick = "location.href='/projects/export/<?= h($project->id) ?>'">Export this Project</button>

更新

我弄清楚了。从我的View.ctp中配置了一个具有相同信息的新.ctp,并在文件末尾将填充数据的填充数据调用。

您可以使用诸如cakephp-dompdf之类的插件,您的代码将更加干净。

最新更新