Функция Laravel 5 () не найдена

Я собираю сайт, на котором есть защищенный раздел, в который пользователи должны войти, чтобы получить доступ. Я сделал это в 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 и не смог найти ничего подходящего для моей нынешней ситуации. Заранее спасибо.

34

Решение

ты забыл uses ключ:

Route::get('foo/bar/{id}', ['middleware'=>'auth', 'uses'=>'FooController@show']);
81

Другие решения

Если вы добавляете что-то большее, чем ваш метод контроллера в ваши маршруты, вам нужно добавить 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']);
8

Если вы не используете контроллер для своего представления и хотите просто отобразить представление, вы должны сделать это:

Route::get('foo/bar', ['middleware' => 'auth', function () {
return View::make('path.to.your.page');
}]);
4
По вопросам рекламы [email protected]