我使用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')
);
}
如何在下载刀片视图中添加参数以下载具有给定名称的特定文件?
答案 0 :(得分:0)
您可以在url数组中添加参数:
@component('mail::message')
Hi,
Downloadlink created
@component('mail::button', ['url' => 'https://myapp.com/download', 'name' => $name])
Download!
@endcomponent
@endcomponent
答案 1 :(得分:0)
如何创建这样的路线: route.php
Route::get('download/{name}', function($name){
return response()->download(
storage_path('/app/uploaded_apps/' . $name . '.zip')
);
});
您还可以将download函数放入控制器中...让我们将其命名为DownloadController,然后您可以调用它:
Route::get('download/{name}', 'DownloadController@download');
您将需要具有接受$ name作为参数而不是Request请求的下载功能。
然后在邮件刀片中:
@component('mail::button', ['url' => 'https://myapp.com/download/'.$name])
Download!
@endcomponent
希望这可以为您提供帮助。