1

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

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

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

下面的代码可能是错误的,我对 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”作为哪个变量传递或如何在过滤器函数中检索“400”值。

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

提前致谢 :)

4

1 回答 1

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

我在文档中遵循了相同的示例并且它有效。

于 2013-08-23T16:52:31.413 回答