缺少文件下载路径所需的参数

时间:2018-02-13 09:23:42

标签: php laravel

路线:

 Route::get('download/{mixtape_file}', 'MixtapeController@download')-
    >name('download');

查看下载按钮:

 <a href="{{ route('download', $mixtape->mixtape_file) }}">
    <button class="btn btn-primary">Download</button>
 </a>

控制器下载功能:

 public function download($mixtape_file)
 {
    $mixtape = Mixtape::where('mixtape_file', '=', $mixtape_file)-
    >firstOrFail();
    $file = public_path('audio/' . $mixtape->mixtape_file);

    return response()->download($file);
 }

2 个答案:

答案 0 :(得分:2)

来自docs

  

如果路线接受参数,您可以将它们作为第二个传递   该方法的参数:

$url = route('routeName', ['id' => 1]);

所以在你的情况下它将是

<a href="{{ route('download', ['mixtape_file'=> $mixtape->mixtape_file]) }}">

答案 1 :(得分:1)

您需要passarray数据作为second辅助方法中的route()参数。

<a href="{{ route('download', ['mixtape_file'=> $mixtape->mixtape_file]) }}">