Маршрут шаблона электронной почты Laravel с параметром - PullRequest
0 голосов
/ 16 октября 2018

Я создаю простую функцию электронной почты, используя Laravel, пользователь получает электронное письмо, и в этом письме я хотел бы назвать маршрут, который загружает файл.

Мой почтовый ящик:

class AppSent extends Mailable
{
    use Queueable, SerializesModels;

    public $name = '';

    public function __construct(String $name)
    {
        $this->name = $name;
    }

    public function build()
    {
        return $this->from(env('MAIL_USERNAME'))
                    ->markdown('emails.download.android_app');
    }
}

при нажатии кнопки я вызываю эту функцию в моем DownloadController, который отправляет электронное письмо пользователю:

return Mail::to($request->email)->queue(new AppSent($request->name));

Это представление уценки (представление электронной почты), которое пользователь получает:

@component('mail::message')
    Hi,

    Downloadlink created

    @component('mail::button', ['url' => 'https://myapp.com/download'])
    Download!

    @endcomponent    
@endcomponent

Это маршрут, по которому мне нужно позвонить, чтобы загрузить zip-файл:

public function download(Request $request)
{
    return response()->download(
        storage_path('/app/uploaded_apps/' . $request->name . '.zip')
    );
}

Как добавить параметр в моем представлении загрузки, чтобы загрузить определенный файл с данным именем?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

А как насчет создания маршрута, подобного этому: rout.php

Route::get('download/{name}', function($name){
   return response()->download(
        storage_path('/app/uploaded_apps/' . $name . '.zip')
    );
});

Вы также можете поместить функцию загрузки в контроллер ... Давайте назовем ее DownloadController, а затем вы сможете вызвать ее:

Route::get('download/{name}', 'DownloadController@download');

Вам понадобится функция загрузки, принимающая $ name в качестве аргумента вместо запроса запроса.

Затем в почтовом блейде:

 @component('mail::button', ['url' => 'https://myapp.com/download/'.$name])
    Download!
@endcomponent 

Надеюсь, что это можетпомочь вам.

0 голосов
/ 16 октября 2018

Вы можете добавить параметр в массив url:

@component('mail::message')
    Hi,

    Downloadlink created

    @component('mail::button', ['url' => 'https://myapp.com/download', 'name' => $name])
    Download!

    @endcomponent    
@endcomponent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...