Ballly
@Ballly

Повторная отправка документа на почту, почему?

Всем здравствуйте! Имеется таблица GridView, написана отдельная кнопка для отправки автоматически формируемого документа pdf на указанную почту. На почту документ приходит, проблем не возникает, но бывает получается так, что на кнопку отправки ни кто не нажимает, а тот же самый документ пользователю через неделю приходит повторно, почему так происходит я и не могу понять, прошу помогите.
Код в контроллере:
public function actionPdf($id)
{
    $model = $this->findModel($id);
    $content = Yii::$app->view->renderFile('@app/views/order/_forma.php', ['model'=>$model]);

    $pdf = new Pdf([
        'mode' => Pdf::MODE_UTF8,
        'format' => Pdf::FORMAT_A4,
        'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.css',
        'orientation' => Pdf::ORIENT_LANDSCAPE, 
        'destination' => Pdf::DEST_BROWSER,
        'content' => $content,
        'options' => ['title' => 'Портал'],
    ]);

    // $fileName = 'list' . md5(time()) . '.pdf';
    $fileName = 'list_' . $model->id . '_ot_' . $model->date . '.pdf';
    $filePath = Yii::getAlias('@app/web/upload/documents/rctp/pdf/' . $fileName);

    $attachment =  $pdf->output($content, $filePath, Pdf::DEST_FILE);

    $result =  Yii::$app->mailer->compose()
        ->setFrom(['pochta@mail.ru' => 'Контора'])
        ->setTo($model->email)
        ->setHtmlBody('Текст')
        ->setSubject('Перечень оборудования #' . $model->id . ' от ' . $model->date)
        ->attach($filePath)
        ->send();

    unlink($filePath);

    return $this->redirect(Yii::$app->request->referrer);
}

Код кнопки отправки
[
    'label' => '',
    'value' => function($data){
        if($data['email'] == true){
            return Html::a(
            	'<span>', 
            	Url::to(['order/pdf', 'id' => $data->id]), 
            	[
            		'class' => 'glyphicon glyphicon-envelope', 
            		'title' => 'Отправить документ на email ' . $data->email, 
            		'data' => [
                		'confirm' => 'Вы подтверждаете отправку документа пользователю ' . $data->name . ' ' . ($data->email),
                		'method' => 'post',
            		],
            	]);
        }else{
            return '';
        }
    },
    'format' => 'raw',
],
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы