页面未通过刷新重定向
Page not redirecting with refresh
我正在从表单调用控制器函数并重定向回同一页面。我只想刷新页面,以便可以显示 flash 消息。
它不会重定向到页面,而是停留在页面上并调用函数!
代码如下:
public function triggerDownload($DownData , $filename){
Yii::import('application.extensions.phpexcel.Classes.PHPExcel');
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$rowCount = 1;
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, 'USER NAME');
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, 'EMAIL ADDRESS');
if (array_key_exists("cam_id",$DownData)){
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, 'CAM TITLE');
}
$rowCount++;
foreach ($DownData as $key => $value) {
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $value['username']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $value['email']);
if (array_key_exists("cam_id",$DownData)){
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $value['cam_id']);
}
$rowCount++;
}
//make first row bold
$objPHPExcel->getActiveSheet()->getStyle("A1:I1")->getFont()->setBold(true);
$objPHPExcel->setActiveSheetIndex(0);
for($col = 'A'; $col !== 'G'; $col++) {
$objPHPExcel->getActiveSheet()
->getColumnDimension($col)
->setAutoSize(true);
}
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment; filename=\"".$filename.".xlsx\"");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("php://output");
Yii::app()->user->setFlash('success', 'Report Downloaded Successfully!');
return $this->redirect('/admin/');
}
而不是
return $this->redirect('/admin/');
尝试
$this->redirect(Yii::app()->request->urlReferrer);
(不需要 return
)
您需要使用以下输入:
return $this->redirect(['admin']);
如果您在 beforeAction() 中尝试这样做,您应该使用 send() 方法
return $this->redirect(['admin'],302)->send();
我正在从表单调用控制器函数并重定向回同一页面。我只想刷新页面,以便可以显示 flash 消息。 它不会重定向到页面,而是停留在页面上并调用函数!
代码如下:
public function triggerDownload($DownData , $filename){
Yii::import('application.extensions.phpexcel.Classes.PHPExcel');
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$rowCount = 1;
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, 'USER NAME');
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, 'EMAIL ADDRESS');
if (array_key_exists("cam_id",$DownData)){
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, 'CAM TITLE');
}
$rowCount++;
foreach ($DownData as $key => $value) {
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $value['username']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $value['email']);
if (array_key_exists("cam_id",$DownData)){
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $value['cam_id']);
}
$rowCount++;
}
//make first row bold
$objPHPExcel->getActiveSheet()->getStyle("A1:I1")->getFont()->setBold(true);
$objPHPExcel->setActiveSheetIndex(0);
for($col = 'A'; $col !== 'G'; $col++) {
$objPHPExcel->getActiveSheet()
->getColumnDimension($col)
->setAutoSize(true);
}
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment; filename=\"".$filename.".xlsx\"");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("php://output");
Yii::app()->user->setFlash('success', 'Report Downloaded Successfully!');
return $this->redirect('/admin/');
}
而不是
return $this->redirect('/admin/');
尝试
$this->redirect(Yii::app()->request->urlReferrer);
(不需要 return
)
您需要使用以下输入:
return $this->redirect(['admin']);
如果您在 beforeAction() 中尝试这样做,您应该使用 send() 方法
return $this->redirect(['admin'],302)->send();