首页 > 解决方案 > 如何使用'/'传递文件路径来路由laravel?

问题描述

我们如何将文件路径传递给这样的路由,

<a href={{route('route.name',['path'=>'uploads/xyx/'.$id.'/'.$attachment_name])}}>download</a>

但是,我希望这能击中

Route::get('download/{path},'Controller')->name('route.name')

当我点击这条路线时,我的 url 以某种方式被转换成这样 -> download/uploads/44/filename这导致未找到异常!我想将路径作为参数传递,斜杠应该被忽略!这样我就可以在控制器中获得完整路径!

标签: laravelvue.js

解决方案


根据文档,您可以这样做:

“Laravel 路由组件允许除 之外的所有字符/。您必须使用 where 条件正则表达式明确允许/成为占位符的一部分”

Route::get('download/{path}', ...)->where('path', '.*');

Laravel 7.x 文档 - 路由 - 参数 - 编码正斜杠


推荐阅读