Php 带有消息变量的路由重定向
我需要拉威尔的帮助。我要做的是创建一个路由筛选器,它将使用从变量传递的指定消息重定向用户。我目前使用的代码是semi-works,但我唯一不喜欢的是,当消息显示在视图上时,它会被转换为小写字符Php 带有消息变量的路由重定向,php,laravel,Php,Laravel,我需要拉威尔的帮助。我要做的是创建一个路由筛选器,它将使用从变量传递的指定消息重定向用户。我目前使用的代码是semi-works,但我唯一不喜欢的是,当消息显示在视图上时,它会被转换为小写字符 Route::get('event/signup', array('before' => 'auth_message:You must be logged into your account to signup for the event.', 'uses' => 'event@signup'
Route::get('event/signup', array('before' => 'auth_message:You must be logged into your account to signup for the event.', 'uses' => 'event@signup'));
Route::filter('auth_message', function($message)
{
if (!Auth::user())
{
return Redirect::to('/')->with('errorAlert', $message);
}
});
因此,例如,此消息“您必须登录到您的帐户才能注册事件。”在重定向用户后,在视图中显示为“您必须登录到您的帐户才能注册事件”。是否可以保留字符大小写?您从过滤器中获取的参数错误。以下工作与您预期的一样:
Route::filter('auth_message', function($route, $request, $value)
{
if (!Auth::user())
{
return Redirect::to('/')->with('errorAlert', $value);
}
});
Route::get('/', function(){
exit(Session::get('errorAlert')); // Returns "You must be logged into your account to signup for the event."
});
您从筛选器中获取了错误的参数。以下工作与您预期的一样:
Route::filter('auth_message', function($route, $request, $value)
{
if (!Auth::user())
{
return Redirect::to('/')->with('errorAlert', $value);
}
});
Route::get('/', function(){
exit(Session::get('errorAlert')); // Returns "You must be logged into your account to signup for the event."
});
那么,我应该如何将它与Route::get()一起使用呢?我试过:
Route::get('event/signup',array('before'=>'auth_message','uses'=>'event@signup“,”消息“=>”测试“)但是,它返回以下错误:缺少Laravel\Bundle的参数1:{closure}()
您不需要更改事件/注册路由。仅将过滤器更改为上述代码$值包含您在“:”之后传递的值。好的,我有以下内容:Route::get('event/signup',array('before'=>'auth_message:您必须登录到您的帐户才能注册事件。','uses'=>'event@signup'));代码>但它仍然抛出一个错误:缺少Laravel\Bundle的参数2:{closure}()
好的,我让它开始工作了。我唯一不完全满意的是,当消息被传递时,它被转换成小写字母。有没有办法防止这种情况发生?我已经测试过了,消息没有转换成小写。尝试并访问/event/您将得到重定向到/的结果,错误应该会显示出来。那么我应该如何将它与Route::get()一起使用呢?我试过:Route::get('event/signup',array('before'=>'auth_message','uses'=>'event@signup“,”消息“=>”测试“)但是,它返回以下错误:缺少Laravel\Bundle的参数1:{closure}()
您不需要更改事件/注册路由。仅将过滤器更改为上述代码$值包含您在“:”之后传递的值。好的,我有以下内容:Route::get('event/signup',array('before'=>'auth_message:您必须登录到您的帐户才能注册事件。','uses'=>'event@signup'));代码>但它仍然抛出一个错误:缺少Laravel\Bundle的参数2:{closure}()
好的,我让它开始工作了。我唯一不完全满意的是,当消息被传递时,它被转换成小写字母。有没有办法防止这种情况发生?我已经测试过了,消息没有转换成小写。尝试并访问/event/您将得到重定向到/的结果,错误将显示出来。