2013-04-07 9 views
1

Мне нужна помощь с Laravel. Я хочу создать фильтр маршрутов, который перенаправляет пользователя с указанным сообщением, переданным из переменной. Код, который у меня в настоящее время имеет полуработы, единственное, что мне не нравится, заключается в том, что сообщение преобразуется в символы нижнего регистра, когда отображается в представлении.Перенаправление маршрута с переменной сообщения

Route::get('event/signup', array('before' => 'auth_message:You must be logged into your account to signup for the event.', 'uses' => '[email protected]')); 

Route::filter('auth_message', function($message) 
{ 
    if (!Auth::user()) 
    { 
     return Redirect::to('/')->with('errorAlert', $message); 
    } 
}); 

Так, например, это сообщение «Вы должны войти в свою учетную запись, чтобы подписаться на мероприятие». отображается как это в представлении после перенаправления пользователя: «вы должны войти в свою учетную запись для регистрации события». Можно ли сохранить регистр символов?

ответ

1

Вы получаете неправильный параметр из фильтра. Следующие работы, как и вы ожидали:

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." 
}); 
+0

Так как же я использовал бы его с помощью Route :: get()? Я пробовал это: 'Route :: get ('event/signup', array ('before' => 'auth_message', 'uses' => 'event @ signup', 'message' => 'test')) ; ' Однако он возвращает эту ошибку:' Отсутствует аргумент 1 для Laravel \ Bundle :: {clos}() ' – Dutchcoffee

+0

Вам не нужно менять маршрут события/регистрации. Измените фильтр только на указанный выше код. $ value содержит значение, которое вы передали после «:». – Philo

+0

Итак, у меня есть это: 'Route :: get ('event/signup', array ('before' => 'auth_message: вы должны войти в свою учетную запись для регистрации события.', 'Uses' => 'event @ signup')) ;, но он все равно выдает ошибку: 'Отсутствует аргумент 2 для Laravel \ Bundle :: {clos}()' – Dutchcoffee

Смежные вопросы