Функция выхода из Laravel не работает в пользовательской аутентификации

В моем проекте Laravel я использую multi auth. Но из-за моего недавно созданного пользователя agency функция выхода из системы не работает

Ниже приведен мой код для выхода из системы.

 <li>
                                 <a href="{{ url('/agency/logout') }}"
                                    onclick="event.preventDefault();
                                    document.getElementById('logout-form').submit();">
                                 Logout
                                 </a>
                                 <form id="logout-form" action="{{ url('/agency/logout') }}" method="POST" style="display: none;">
                                    {{ csrf_field() }}
                                 </form>
                              </li>

Ниже приведен код в маршрутах (web.php).

Route::group(['prefix' => 'agency'], function () {
    Route::get('/', 'Agency\AgencyAuth\LoginController@showLoginForm')->name('agency_login');
    Route::get('/login', 'Agency\AgencyAuth\LoginController@showLoginForm')->name('login');
    Route::post('/login', 'Agency\AgencyAuth\LoginController@login');
    Route::post('/logout', 'Agency\AgencyAuth\LoginController@logout')->name('logout');

   // Route::get('/agencie_home', 'Agency\HomeController@index')->name('agencie_home');
});

Ниже приведен код в LoginController.php.

<?php

namespace App\Http\Controllers\Agency\AgencyAuth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Hesto\MultiAuth\Traits\LogsoutGuard;
use JsValidator;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers, LogsoutGuard {
        LogsoutGuard::logout insteadof AuthenticatesUsers;
    }

    protected $validationRules = [
                                        'email' => 'required|email',
                                        'password' => 'required'
                                    ];

    /**
     * Where to redirect users after login / registration.
     *
     * @var string
     */
    public $redirectTo = '/agency/dashboard';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('agencie.guest', ['except' => 'logout']);
    }

    /**
     * Show the application's login form.
     *
     * @return \Illuminate\Http\Response
     */
    public function showLoginForm()
    {
        $validator = JsValidator::make($this->validationRules,[],[],'#loginform');
        return view('agency.auth.login')->with('validator', $validator);
    }

    /**
     * Get the guard to be used during authentication.
     *
     * @return \Illuminate\Contracts\Auth\StatefulGuard
     */
    protected function guard()
    {
        return Auth::guard('agencie');
    }

    public function logout(Request $request) {
        Auth::logout();
       return '/agency';
    }
}

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

Class App\Http\Controllers\Agency\AgencyAuth\Request does not exist

Как я могу реализовать функцию выхода из системы?


person Rajesh    schedule 22.04.2020    source источник
comment
Привет. пожалуйста, вставьте свой код контроллера входа   -  person Mohammad Hosseini    schedule 22.04.2020
comment
Однако эта ошибка, похоже, связана с тем, что вы не использовали Illuminate \ Http \ Request; в верхней части вашего контроллера.   -  person Tim Sheehan    schedule 22.04.2020
comment
Привет, я добавил код контроллера входа   -  person Rajesh    schedule 22.04.2020


Ответы (1)


Вы не используете требуемое пространство имен, попробуйте использовать в своем LoginController следующее:

use Illuminate\Http\Request;

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

App\Http\Controllers\Agency\AgencyAuth;
person Mohammad Hosseini    schedule 22.04.2020
comment
Он просто возвращается как агентство, а не вышел из системы. - person Rajesh; 22.04.2020
comment
Я не понимаю вашу новую ошибку: agancy не вышла из системы ... кратко опишите вашу ошибку @EdisonDeckward - person Mohammad Hosseini; 22.04.2020