Laravel 5.2 - метод auth не существует - PullRequest
0 голосов
/ 02 мая 2018

Я недавно клонировал проект Laravel 5.2. После запуска composer install я продолжаю получать следующую ошибку после каждой команды Artisan и при попытке доступа к приложению:

Метод аутентификации не существует

Я мог бы найти похожие проблемы «метод не существует» в сети, но ничего об «auth». Я считаю, что упоминаемый класс 'auth' является встроенным и может использоваться в качестве промежуточного программного обеспечения для различных маршрутов. Однако я не знаю, как решить проблему.

Я пробовал:

  • composer dump-autoload -o
  • удаление библиотек поставщика и переустановка с помощью composer
  • сброс в удаленную ветку
  • повторное клонирование хранилища
  • работает под PHP 5.6 и 7.1

Любая помощь будет принята с благодарностью!

Мой файл композитора:

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "gloudemans/calendar": "dev-master",
    "zizaco/entrust": "5.2.x-dev",
    "laravelcollective/html": "5.2.*",
    "guzzlehttp/guzzle": "~6.0",
    "predis/predis": "~1.0",
    "aws/aws-sdk-php": "~3.0",
    "mpociot/laravel-apidoc-generator": "^2.0"
},
"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~4.0",
    "phpspec/phpspec": "~2.1",
    "symfony/dom-crawler": "~3.0",
    "symfony/css-selector": "~3.0"
},
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
"autoload-dev": {
    "classmap": [
        "tests/TestCase.php"
    ]
},
"scripts": {

    "pre-update-cmd": [
        "php artisan clear-compiled"
    ],
    "post-update-cmd": [
        "php artisan optimize"
    ],
    "post-root-package-install": [
        "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
} 
}

Трассировка стека ошибки из файла laravel.log:

[2018-05-01 12:49:56] local.ERROR: BadMethodCallException: метод auth не существует. в /Applications/XAMPP/xamppfiles/htdocs/[ProjectName]/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php:81 Трассировка стека:

  1. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php (213): подсветить вызов \ Routing \ Router -> __ ('auth', Array)
  2. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /app/Http/routes.php (424): Подсветка \ Поддержка \ Фасады \ Фасад :: __ callStatic ('auth', Array)
  3. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /app/Providers/RouteServiceProvider.php (41): требуется ('/ Applications / X ...')
  4. [внутренняя функция]: App \ Providers \ RouteServiceProvider-> App \ Providers {closure} (Object (Illuminate \ Routing \ Router))
  5. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Routing/Router.php (354): call_user_func (Object (Closure), Object (Illuminate \ Routing \ Router) )
  6. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /app/Providers/RouteServiceProvider.php (42): Осветить \ Routing \ Router-> group (Массив, Объект (Закрытие))
  7. [внутренняя функция]: App \ Providers \ RouteServiceProvider-> map (Объект (Подсветка \ Маршрутизация \ Маршрутизатор))
  8. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Container/Container.php (507): call_user_func_array (Array, Array)
  9. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php (72): Illuminate \ Container \ Container-> call (Array)
  10. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php (31): Illuminate \ Foundation \ Support \ Providers \ Route-errovP loadRoutes ()
  11. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /app/Providers/RouteServiceProvider.php (29): Подсветка \ Foundation \ Support \ Providers \ RouteServiceProvider-> boot (Объект (Подсветка \ Маршрутизация \ Маршрутизатор))
  12. [внутренняя функция]: App \ Providers \ RouteServiceProvider-> boot (Object (Illuminate \ Routing \ Router))
  13. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Container/Container.php (507): call_user_func_array (Array, Array)
  14. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Application.php (734): Подсветить \ Container \ Container-> call (Array)
  15. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Application.php (717): Осветить \ Foundation \ Application-> bootProvider (Object (App \ Providers \) RouteServiceProvider)) 15 [внутренняя функция]: Подсветка \ Фонд \ Приложение-> Подсветка \ Фонд {закрытие} (Объект (App \ Providers \ RouteServiceProvider), 16)
  16. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Application.php (718): array_walk (Array, Object (Closure)) *
  17. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php (17): Освещать \ Foundation \ Application-> boot ()
  18. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Application.php (203): Осветить \ Foundation \ Bootstrap \ BootProviders-> bootstrap (Объект (Осветить \) Фонд \ Application))
  19. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php (208): Освещение \ Foundation \ Application-> bootstrapWith (Array)
  20. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] /vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php (105): Освещение \ Foundation \ Console \ Kernel-> bootstrap ()
  21. / Applications / XAMPP / xamppfiles / htdocs / [ProjectName] / artisan (35): Подсветка \ Foundation \ Console \ Kernel-> handle (Объект (Symfony \ Component \ Console \ Input \ ArgvInput), Объект (Symfony \ Component) \ Console \ Output \ ConsoleOutput))
  22. {Основной}

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Благодаря @JagadeshaNH мне удалось решить проблему.

Routes.php содержал следующую строку: Route :: Auth ();

Это вызывает функцию, которая генерирует множество маршрутов аутентификации.

После запуска composer install он, очевидно, установил не все обновления версий для Laravel 5.2, которые содержат команду php artisan make:auth и действительную функцию auth.

Поскольку эти файлы не существовали, ремесленник продолжал отказывать, и приложение не запускалось.

Решение было:

  1. Комментарий Route::auth() в файле rout.php
  2. Запуск composer update (который раньше не работал из-за ошибки)
  3. Раскомментировать Route::auth()
0 голосов
/ 02 мая 2018

попробуйте команду

php artisan make:auth
0 голосов
/ 02 мая 2018

Замените Route :: auth () на следующие маршруты или

// Authentication Routes...
    $this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
    $this->post('login', 'Auth\LoginController@login');
    $this->post('logout', 'Auth\LoginController@logout')->name('logout');

    // Registration Routes...
    $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
    $this->post('register', 'Auth\RegisterController@register');

    // Password Reset Routes...
    $this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm');
    $this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
    $this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm');
    $this->post('password/reset', 'Auth\ResetPasswordController@reset');
...