Функция 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']);

Маршрут работает нормально, пока не включено промежуточное программное обеспечение.

Когда доступ к маршруту осуществляется с помощью промежуточного программного обеспечения, однако результат не так уж и забавен.

Упс, похоже, что-то пошло не так.

Исключение отражения в маршруте.строка 150 php:

Функция () не существует

Любое понимание, помощь и/или содействие очень ценятся. Я прошелся по Гуглу и не смог найти ничего, что имело бы отношение к моему нынешнему положению. Заранее спасибо.

Author: manix, 2015-02-13

3 answers

Вы забыли ключ uses:

Route::get('foo/bar/{id}', ['middleware'=>'auth', 'uses'=>'FooController@show']);
 78
Author: manix, 2015-05-03 06:47:05

Если вы добавляете в свои маршруты что-то большее, чем метод контроллера, вам нужно добавить 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
Author: Marcin Nabiałek, 2015-02-13 05:52:27

В случае, если вы не используете контроллер для своего представления и просто хотите отобразить представление, вам следует сделать следующее:

Route::get('foo/bar', ['middleware' => 'auth', function () {
    return View::make('path.to.your.page');
}]);
 4
Author: paulalexandru, 2015-10-30 10:51:42