2016-06-15 17 views
2

Ich habe derzeit eine Funktion in einer Projekt-Controller-Klasse, die ich anrufe, um ein bestimmtes Projekt in ein PDF zu exportieren. Ich stoße auf Probleme, wenn ich versuche, diese einzelne Projektseite zu übergeben, von der ich ziehe. Wenn ich die Funktion aus meiner Sicht aufrufen und eine Zeichenfolge mit gültigem HTML-Code von meiner export() -Funktion übergeben, wird eine PDF korrekt erstellt. Ich frage mich nur, wie ich es von dieser ctp-Vorlage zu meinem Controller bekommen kann, um als pdf erstellt zu werden. Vielen Dank.CakePHP 3+ Problem mit DomPdf

In meinem 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'); 
} 

In meinem view.ctp

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

aktualisieren

Ich habe es herausgefunden. Ich habe ein neues .ctp mit den gleichen Informationen aus meinem view.ctp konfiguriert und dort einen Export mit den gefüllten Daten in einem PHP-Skript am Ende meiner Datei aufgerufen.

Antwort