基本laravel路由过滤器参数错误

时间:2013-08-23 16:36:27

标签: php laravel laravel-4

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

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

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

下面的代码可能有误,我对laravel很新,不确定它是如何工作的

我编写的代码为 ERROR

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”被传递为或如何在过滤器函数中检索“400”值。

所以问题是如何编写该过滤函数来获得“400”值?

提前致谢:)

1 个答案:

答案 0 :(得分:3)

如果要传递要由过滤器评估的参数或值,则必须执行以下操作:

Route::filter('age', function($route, $request, $value)
{
  if($value < 200)
  return Redirect::to('/');
});

Route::get('test', array('before' => 'age:199', function()
{
  return 'Hello World';
}));

我在documentation中使用了相同的示例,但它确实有效。