Laravel路由问题

时间:2014-10-12 10:40:40

标签: php laravel laravel-4 laravel-routing

我正在使用laravel框架。我设置了几个routes,其中包含 example.com/route/{dir_name} 等参数。当我传入一个有孩子的目录时,它认为它是另一条路线。有没有办法绕过它?

我正在使用此代码:

Route::get('/route/something/{path}',array('as'=>'something',function($path){
     return $path;
}));

当我使用/route/something/home/user/dev时,它会抛出Symfony\Component\HttpKernel\ Exception\NotFoundHttpException个异常。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用正则表达式对route参数使用约束。

Route::any('/route/{dir_name}', function ($dir_name) {
    return $dir_name;
})->where('dir_name', '.*');

请参阅有关route parameters的文档部分,特别是"正则表达式路径约束"一部分。

答案 1 :(得分:0)

您有 example.com/route/ {dir_name}

我假设您的路线在routes.php中定义

Route::get('/route/{dir_name}', [
    'as' => 'someRoute',
    'uses' => 'SomeController@index'
]);

在SomeController.php文件中,您将使用此方法接收{dir_name}

public function index($dir_name) {
return $dir_name;
}

相反,你有路线

Route::get('/route/something/{path}',array('as'=>'something',function($path){
     return $path;
}));

/路线/的东西 / {路径}

如果您希望网址中包含某些内容,则必须在路由中。这就是您获得 NotFoundHttpException

的原因