基本laravel路由筛选器参数错误


Basic laravel Route filter parameters error

我今天刚开始学习Laravel,正在阅读文档和测试示例代码等。

我提出了一个基本的路线过滤器参数问题,我不确定它是如何工作的。

来自本文档页面上的示例http://laravel.com/docs/routing#basic-路由

下面的代码可能是错误的,我是laravel的新手,还不确定它是如何真正工作的

我得到的代码是这样写的,这给了我错误

Route::filter('old', function($age)  // a guess is that the correct way to pass $age=400 ?
{
   if($age < 200){
     return Redirect::to(''); 
   }
});
Route::get('user', array('before' => 'old:400', function()
{
    return 'You are over 200 years old!';
}));

从这个代码中,它的意思是将值"400"传递给旧的过滤器,对吗。。。但我不知道如何在过滤器中获得400值。。。我的意思是"400"作为哪个变量传递,或者如何在filter函数中检索"400"值。

所以问题是如何编写过滤器函数来获得"400"值?

提前感谢:)

如果你想传递一个参数或值由过滤器评估,你必须这样做:

Route::filter('age', function($route, $request, $value)
{
  if($value < 200)
  return Redirect::to('/');
});
Route::get('test', array('before' => 'age:199', function()
{
  return 'Hello World';
}));

我在文档中使用了相同的示例,并且成功了。