Yii在保存数据时自动生成报告

时间:2014-01-15 06:15:13

标签: php yii

如何在完成数据插入后获取,执行直接应用程序会根据刚刚输入的数据自动生成报告?

我的控制器(保存):

public function actionCreate()
{
    $model=new PurchaseOrder;

    if(isset($_POST['PurchaseOrder']))
    {
        $model->attributes=$_POST['PurchaseOrder'];
        if($model->save())
            $this->redirect('index');
    }

    $this->render('create',array(
        'model'=>$model,
    ));
}

我的控制器(生成报告):

public function actionCetak()
{
    if(isset($_POST['PrintPO'])){
        $data = $_POST['no_po'];
        if($data==''){
            return false;
        }else{
            $HTML2PDF = Yii::app()->ePdf->HTML2PDF();
            $HTML2PDF->WriteHTML($this->renderPartial('data_print', array(
                'data' => $this->loadCetak($data)
            ), true));
            $HTML2PDF->Output();
        }
    }else{
        $this->render('form_cetak_po'); 
    }
}

这两个函数运行顺利,但当我combining进入:

public function actionCreate()
{
    $model=new PurchaseOrder;

    if(isset($_POST['PurchaseOrder']))
    {
        $model->attributes=$_POST['PurchaseOrder'];
        if($model->save())
            $HTML2PDF = Yii::app()->ePdf->HTML2PDF();
            $HTML2PDF->WriteHTML($this->renderPartial('data_print', array(
                'data' => $this->loadCetak($model->id)
            ), true));
            $HTML2PDF->Output();
            $this->redirect('index');
    }

    $this->render('create',array(
        'model'=>$model,
    ));
}

应用程序只执行插入功能。如何在完成插入后订购,直接akang应用程序及其生成的数据可以下载。

由于

2 个答案:

答案 0 :(得分:0)

您在if(save())

之后错过了方括号

看看这个:

 if(isset($_POST['PurchaseOrder']))
    {
        $model->attributes=$_POST['PurchaseOrder'];
        if($model->save())
            { // <-- add this
            $HTML2PDF = Yii::app()->ePdf->HTML2PDF();
            $HTML2PDF->WriteHTML($this->renderPartial('data_print', array(
                'data' => $this->loadCetak($data)
            ), true));
            $HTML2PDF->Output();

            } //<-- add this
            else
             {
              $this->redirect('index');
             }
    }

答案 1 :(得分:0)

下载后重定向

我认为不能这样做。

流行下载网站的常见之处是反过来:首先你去“之后”页面然后开始下载。

你可以这样做:

保存后,重定向到这样的东西
index.php?r=controller/index&file_info=information

并在索引方法中,选中if ($_GET['file_info']),然后创建您的pdf文件并进行下载。

Look at the top answer here