Ответ 1
вы забыли ключ uses
:
Route::get('foo/bar/{id}', ['middleware'=>'auth', 'uses'=>'[email protected]']);
Я собираю сайт, на котором есть защищенный раздел, где пользователи должны войти в систему для доступа. Я сделал это в Laravel 4 без особого инцидента. Однако для жизни я не могу понять, почему я не могу заставить его работать в Laravel 5 (L5).
В L5 промежуточное ПО было/было введено. Это изменяет файл маршрута на:
Route::get('foo/bar', ['middleware'=>'auth','[email protected]']);
Route::get('foo/bar/{id}', ['middleware'=>'auth','[email protected]']);
Маршрут работает нормально, пока промежуточное ПО не включено.
Когда доступ к маршруту осуществляется с помощью промежуточного программного обеспечения, результат не так увлекателен.
Упс, похоже, что что-то пошло не так.
ReflectionException в строке Route.php 150:
Функция() не существует
Любое понимание, помощь и/или помощь очень приветствуются. Я сделал схему Google и не нашел ничего, что могло бы повлиять на мое текущее положение. Спасибо заранее.
вы забыли ключ uses
:
Route::get('foo/bar/{id}', ['middleware'=>'auth', 'uses'=>'[email protected]']);
Если вы добавляете в свои маршруты что-то большее, чем ваш метод контроллера, вам нужно добавить uses
в качестве ключа массива для вашего контроллера, так что, например, если я не занимаюсь каким-либо промежуточным программным обеспечением, достаточно написать:
Route::get('foo/bar', '[email protected]');
Route::get('foo/bar/{id}', '[email protected]');
Однако, если вы хотите добавить промежуточное программное обеспечение, вам нужно написать:
Route::get('foo/bar', ['middleware'=>'auth','uses' => '[email protected]']);
Route::get('foo/bar/{id}', ['middleware'=>'auth','uses' => '[email protected]']);
Если вы не используете контроллер для своего вида, и вы просто хотите отобразить представление, вы должны сделать это:
Route::get('foo/bar', ['middleware' => 'auth', function () {
return View::make('path.to.your.page');
}]);