2015-01-15 4 views
0

У меня есть приложение, в котором, когда мой пользователь вышел из системы или завершился сеанс входа в систему, по какой-то причине перенаправление на страницу знака продолжает терпеть неудачу .. Я продолжаю поиск, но я слепой к решению. Может ли кто-нибудь взглянуть на это и обнаружить у меня проблему?Laravel 4.2 - Маршрут продолжается с ошибкой

У меня есть знак пользователя на маршруте:

/* 
    | Sign in (GET) 
    */ 
    Route::get('/account/sign-in', array(
     'as' => 'account-sign-in', 
     'uses' => '[email protected]' 
    )); 

getSignIn просто компонует вид:

public function getSignIn() { 
    return View::make('account.signin'); 
} 

Я также аутентифицированного маршруты группы

/* 
| Authenticated group 
*/ 
Route::group(array('before' => 'auth'), function() { 

    Route::group(array('prefix' => 'admin'), function() 
    { 
     Route::get('/languages', array(
      'as' => 'language-list', 
      'uses' => '[email protected]' 
     )); 
    }); 
} 

И getLanguages ​​является просто так:

public function getLanguages() { 

    if(Auth::check()) { 

     $languages = Language::all(); 

     return View::make('admin.language')->with('languages', $languages); 

    } else { 

     return Redirect::route('account-sign-in'); 
    } 
} 

Похоже, каждый раз, когда эта линия запускается на выполнение перенаправлять терпит неудачу

return Redirect::route('account-sign-in'); 

Я получаю эту ошибку:

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException 



11. Symfony\Component\HttpKernel\Exception\NotFoundHttpException 
…\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php148 

ответ

1

Это:

public function getSignIn() { 
    return View::make('account.signin'); 
} 

Должно быть, что:

public function getSign_in() { 
    return View::make('account.signin'); 
} 

Пояснение:

От Illuminate API: ControllerInspector.php

/** 
* Determine the URI from the given method name. 
* 
* @param string $name 
* @param string $prefix 
* @return string 
*/ 
public function getPlainUri($name, $prefix) 
{ 
    return $prefix.'/'.implode('-', array_slice(explode('_', snake_case($name)), 1)); 
} 

Учитывая, что Laravel использует snake_case найти методы контроллера, [email protected] имя метода в параметре Routeuses будут преобразованы в змеи случае , который составляет getSign_in().

+0

Это производит «Метод [getSignIn] не существует». Маршрут работает отлично, когда к виду обращаются напрямую. Он не работает, когда я использую «Redirect :: route». – GRowing

+0

AGHH! Я получил это. Языковой маршрут был заключен в группу, отфильтрованную по автору «Маршрут :: группа (массив ('before' => 'auth') ...« мой «учетная запись» находится внутри группы с другим фильтром. , – GRowing

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