页面不会刷新重定向

时间:2017-08-26 15:53:41

标签: php yii

我从表单调用控制器函数并重定向回同一页面。我只想刷新页面,以便显示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/');
   }  

2 个答案:

答案 0 :(得分:1)

而不是

return $this->redirect('/admin/');

尝试

$this->redirect(Yii::app()->request->urlReferrer);

(不需要return

答案 1 :(得分:1)

您需要使用以下输入:

return $this->redirect(['admin']);

如果你在beforeAction()中尝试,你应该使用send()方法

return $this->redirect(['admin'],302)->send();