В настоящее время у меня есть функция в классе контроллера проекта, которую я вызываю, чтобы экспортировать конкретный проект в pdf. У меня возникают проблемы, когда я пытаюсь передать ту страницу одного проекта, из которой я выхожу. Если я вызываю функцию из своего представления и передаю строку действительного html из моей функции export(), она правильно создаст pdf. Мне просто интересно, как я могу получить его из этого шаблона ctp, чтобы мой контроллер был создан как pdf. Благодарю.CakePHP 3+ issue with DomPdf
В моей 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');
}
В моей view.ctp
<button class = 'project_edit' onclick = "location.href='/projects/export/<?= h($project->id) ?>'">Export this Project</button>
Update
я разобрался. Настроил новый .ctp с той же информацией из моего view.ctp и назвал экспорт там с заполненными данными в php-скрипте в конце моего файла.