Laravel路由:RouteCollection中的子文件夹和错误

时间:2017-02-07 03:10:26

标签: laravel routes

我有子文件夹的网址:

/book/yur.voprosy/vopros-1.json

我不计算将在/ book /之后的子文件夹级别 我的路线是:

Route::get('/book/{file?}', 'BookController@index');

但如果等级超过1 laravel返回: RouteCollection.php第161行中的NotFoundHttpException:

如何解决?

1 个答案:

答案 0 :(得分:0)

你不能在Laravel中真正做到这一点,因为路由系统希望你定义确切的"路径",所以,为了它起作用,你必须:

co1     col2    col3    col4    col5
1       2       3       longL   5

以这种方式在控制器中使用它:

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');

$ numargs = func_num_args();

或者你可以这样做:

public function index() {  

    $file = implode('/', func_get_args());

} 

然后点击

Route::get('/findbook', 'BookController@index');

使用

在控制器中获取它
https://yourdomain.com/findbook?filename=yur.voprosy/vopros-1.json