Задать вопрос
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',
],
  • Вопрос задан
  • 31 просмотр
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы