Laravel routes:子文件夹和RouteCollection中的错误
我有带子文件夹的URL: /book/yur.voprosy/vopros-1.json 我不计算/book之后的子文件夹级别/ 我的路线是:Laravel routes:子文件夹和RouteCollection中的错误,laravel,routes,Laravel,Routes,我有带子文件夹的URL: /book/yur.voprosy/vopros-1.json 我不计算/book之后的子文件夹级别/ 我的路线是: Route::get('/book/{file?}', 'BookController@index'); 但如果级别大于1,则laravel返回: RouteCollection.php第161行中的NotFoundHttpException: 如何修复它?在Laravel中,您无法真正做到这一点,因为路由系统希望您定义准确的“路径”,因此,要使其工作
Route::get('/book/{file?}', 'BookController@index');
但如果级别大于1,则laravel返回:
RouteCollection.php第161行中的NotFoundHttpException:
如何修复它?在Laravel中,您无法真正做到这一点,因为路由系统希望您定义准确的“路径”,因此,要使其工作,您必须:
Route::get('/book/{folder?}/{file?}', 'BookController@index');
在控制器中按以下方式使用:
public function index($folder = null, $file = null) { ... }
所以你可以这样做
Route::get('/book/{f1?}/{f2?}/{f3?}/{f4?}/{f5?}/{f6?}/{f7?}', 'BookController@index');
在你的控制器使用中
public function index() {
$file = implode('/', func_get_args());
}
$numargs=func_num_args()
或者你可以:
Route::get('/findbook', 'BookController@index');
然后击中
https://yourdomain.com/findbook?filename=yur.voprosy/vopros-1.json
并使用
Input::get('filename')
您的url显示您需要1个可选参数。因此,它将始终在
book
之后的1个参数处停止。如果有更多参数,它将始终返回not found。您到底想将什么与您的路线匹配?感谢使用GET参数的解决方案!没关系!