如何在Laravel snappyPDF中处理错误异常?

时间:2019-04-01 09:38:50

标签: php laravel

使用Laravel / Snappy生成PDF。但是,此错误:

  

尝试将其保存到存储器后已经存在文件名。

如何处理这些错误?

public function saveSnappyHeaderFooter()
{

    //dd( storage_path());
    $users = \App\User::all();
    $data = ['users' => $users]; 
    $SnappyPDF = SnappyPDF::loadView('pdf.snappyPDF.snappyHeaderFooter', $data);
    $SnappyPDF->setOption('margin-top', '25mm');
    $SnappyPDF->setOption('margin-bottom', '25mm');
    $SnappyPDF->setOption('header-html', public_path() . '\pdf-parts\pdf-header.html');
    $SnappyPDF->setOption('footer-html', public_path() . '\pdf-parts\pdf-footer.html');
    $SnappyPDF->setOption('print-media-type', true);


    $SnappyPDF->save(storage_path('app/files/'.Carbon::now() .'_' . 'myname2.pdf'));

}

1 个答案:

答案 0 :(得分:1)

通常,这是处理PHP错误的方法:

 try {
        //your code
    } catch (Exception $e) {

      //handle errors

    }

或者您可以使用以下方法询问文件是否存在:

if(!file_exists(storage_path('app/files/'.Carbon::now() .'_' . 'myname2.pdf'))){
    //ok, code will run
}else{
   // not ok, maybe change the name?
}

您也可以用laravel的方式来完成它:File::exists

或者也许您可以给我们更多细节。

注意
它不是一个反模式,不能100%确保文件不存在。我不知道您的用例,但我是说基于您正在生成文件名的事实。也许您应该使用更多的uniq模式。像GUID ...