CakePHP 1.3和TCPDF:打印PDF后如何返回控制器

CakePHP 1.3和TCPDF:打印PDF后如何返回控制器,cakephp,tcpdf,Cakephp,Tcpdf,我正在使用CakePHP1.3和TCPDF,使用print\u PDF.ctp打印PDF文件。打印后,我无法将页面重定向到推荐人。未到达控制器操作的已注释部分。。我如何管理这个 请注意,print\u pdf()链接到一个按钮。因此,用户加载一个页面,按下链接到Print\u pdf操作的“Print”按钮,点击该按钮时将打印一个pdf文件。我想重定向的原因是,print\u pdf操作更新了一些数据,需要刷新按钮所在的页面以反映此更新 控制器: // This action is linked

我正在使用CakePHP1.3和TCPDF,使用
print\u PDF.ctp
打印PDF文件。打印后,我无法将页面重定向到推荐人。未到达控制器操作的已注释部分。。我如何管理这个

请注意,
print\u pdf()
链接到一个按钮。因此,用户加载一个页面,按下链接到
Print\u pdf
操作的“Print”按钮,点击该按钮时将打印一个pdf文件。我想重定向的原因是,
print\u pdf
操作更新了一些数据,需要刷新按钮所在的页面以反映此更新

控制器:

// This action is linked to a button
function print_pdf() {
    ...    
    $this->layout = 'pdf'; //this will use the pdf.ctp layout
    $this->render();   

    // Line below are not executed
    ...
    $this->redirect($this->referer());
}

我还不能完全确定我是否理解你的意图。您试图重定向到另一个页面以保存一些信息,然后立即向此人显示PDF

为什么不在PDF函数中运行任何保存您所做的操作:

// This action is linked to a button
function print_pdf() {
    ...
    //$this->redirect($this->referer());
    //Put whatever you were going to redirect to before the render.  Instead of  redirecting just run the thing as part of this function.
    ...    
    $this->layout = 'pdf'; //this will use the pdf.ctp layout
    // Line below are not executed
    $this->render();     
}

$this->render();应该脱离控制器,直接进入视图。你不能把任何东西放在后面。如果要使用按钮更改页面,可以在渲染之前进行更改

一旦你点击render,它就会加载页面。在进入PDF之前,您可以进行这些更改吗?或者,您可以打开一个新的选项卡/窗口,进行更改,然后关闭该选项卡吗?如果我在渲染之前重定向页面,它将不会打印PDF。我也尝试过Javascript,在那里我将页面刷新分配给
print\u pdf
按钮,但这也不起作用,因为页面在执行
print\u pdf
操作之前刚刚刷新。我必须在
打印\u pdf
视图中重定向吗?(这似乎不合适)您可能必须通过使用JavaScript的AJAX调用来实现这一点;点击按钮;向服务器发送Ajax调用并更新数据库,当Ajax调用返回“success”时,更新信息并打开PDFI。我基本上重定向到同一页面以刷新页面以反映PDF已打印。如果在渲染之前重定向,则不会显示PDF下载提示。我希望用户能够获得“下载”窗口,以便下载PDF文件。