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