我是新的蛋糕,但我設法達到目前爲止。在我發現html2pdf是一個用於生成PDF文檔的便捷方式之後,我已經安裝了html2ps/pdf並且在一些小問題之後能夠正常工作。所以,現在我現在來點,如果我不改變我的控制器beforeRender功能,如:Cakephp html2pdf認證問題
function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('download','view');
}
我只是看到我創建的PDF從來就loginpage。在我的beforeRender函數中設置$ this-> Auth-> allow值明顯地打開了所有未經授權即可獲得完美pdf的途徑。整個控制器看起來是這樣的:
<?php
class DashboardController extends AppController {
var $name = 'Dashboard';
var $uses = array('Aircrafts','Trainingplans',
'Fstds','Flights','Properties','Person');
function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('download','view');
}
function view() {
/* set layout for print */
$this->layout = 'pdf';
/* change layout for browser */
if> (!isset($this->params['named']['print']))
$this->layout = 'dashboard';
/* aircrafts */
$this->Aircrafts->recursive = 0;
$aircrafts =$this->Aircrafts->find('all');
$this->set('aircrafts',$aircrafts);
.... and so on....
$this->set('person_properties',$person_properties);
}
function download($id = null) {
$download_link = 'dashboard/view/print:1';
// Include Component
App::import('Component', 'Pdf');
// Make instance
$Pdf = new PdfComponent();
// Invoice name (output name)
$Pdf->filename = 'dashboard-' . date("M");
// You can use download or browser here
$Pdf->output = 'download';
$Pdf->init();
// Render the view
$Pdf->process(Router::url('/', true) . $download_link);
$this->render(false);
}
}
?>
所以,在我看來,$ PDF - >進程調用通過調用或多或少視圖get's的數據,但這個過程沒有登錄,或者換句話說沒有獲得我想要呈現到pdf中的數據的授權。所以現在的問題是如何通過不向所有人開放我的應用程序來完成它。
最好的問候,cdjw
感謝您的回答。但是,這意味着,如果我錯了,糾正我,我的下載功能顯然不能再訪問一個沒有登錄的人。到目前爲止這麼好,這是我想要的第二位。主要的問題在於,任何人都可以訪問該視圖,只要$ Pdf-> process試圖在單獨的會話中收集日期。查看數據是我想要防止如果用戶沒有登錄。我是對的嗎? – 2011-02-03 10:13:01
好的。我已更新我的回答 – 2011-02-03 10:19:37