Laravel 5.7 не может объявить имя класса в использовании

Я пытаюсь сделать несколько аутентификаций на своем веб-сайте; Я бы хотел, чтобы одно представление журнала выполнялось как пользователь, а другое - как клиент. У меня есть таблица пользователей, и я создаю клиентскую таблицу с кодом вместо почты и mtpass вместо пароля.

ClientLoginController

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller as CltController;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class ClientLoginController extends CltController
{
    use AuthenticatesUsers;

    public function __construct()
    {
        $this->middleware('auth:client');
    }

    public function login()
    {
        return view('client.auth.login');
    }

    public function showClientLoginForm()
    {
        return view('auth.loginClient', ['url' => 'client']);
    }

    public function clientLogin(Request $request)
    {
        $this->validate($request, [
            'Code' => 'required|email',
            'Mtpass' => 'required|min:4'
        ]);

        if (Auth::guard('client')->attempt(['Code' => $request->Code, 'Mtpass' => $request->Mtpass], $request->get('remember'))) {

            return redirect()->intended('/main');
        }
        return back()->withInput($request->only('Code', 'remember'));
    }
}

LoginController

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
        $this->middleware('guest:client')->except('logout');
    }

    public function showClientLoginForm()
    {
        return view('auth.loginClient', ['url' => 'client']);
    }

    public function clientLogin(Request $request)
    {
        $this->validate($request, [
            'Code' => 'required|email',
            'Mtpass' => 'required|min:4'
        ]);

        if (Auth::guard('client')->attempt(['Code' => $request->Code, 'Mtpass' => $request->Mtpass], $request->get('remember'))) {
            return redirect()->intended('/main');
        }

        return back()->withInput($request->only('Code', 'remember'));
    }

    protected function redirectTo()
    {
        $role_id = auth()->user()->role_id;

        if (auth()->check()) {
            switch ($role_id) {
                case 1:
                    return 'admin/profil';
                case 2:
                    return 'client/profil';
                case 3:
                    return 'agent/profil';
            }
        }

        return '/main';
    }
}

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

Невозможно объявить класс App \ Http \ Controllers \ ClientLoginController, потому что это имя уже используется

Может ли кто-нибудь помочь мне исправить и разобраться в происходящем? Спасибо вам всем!


person Elodie Cmpn    schedule 19.12.2018    source источник
comment
Находится ли ClientLoginController в App \ Http \ Controllers?   -  person Sander    schedule 19.12.2018
comment
извините, я не писал это, да, это: пространство имен App \ Http \ Controllers;   -  person Elodie Cmpn    schedule 19.12.2018
comment
В этом пространстве имен есть еще один класс ClientLoginController. Возможно, у вас есть другой файл (с совершенно другим именем), который по ошибке имеет то же имя класса (обычная ошибка копирования и вставки)   -  person Stormhammer    schedule 19.12.2018
comment
Вход должен производиться с одного контроллера. Используйте какой-либо тип роли, чтобы определить, что отправлять / показывать вошедшему в систему пользователю. Я рекомендую использовать Gates / Polices   -  person Brad Goldsmith    schedule 19.12.2018
comment
Stormhammer спасибо за ваш ответ, к сожалению, я заглянул глубоко в свой маленький код, и нет другого имени класса, как то же самое ...   -  person Elodie Cmpn    schedule 19.12.2018
comment
Спасибо, Брэд, я новичок в laravel с 3 месяцев, я создаю свой веб-сайт в одиночку, шаг за шагом, и сейчас трудно применять эти лучшие практики, надеюсь, скоро   -  person Elodie Cmpn    schedule 19.12.2018
comment
Спасибо Карлу Хиллу за урок грамматики !!! я француз, ты можешь в это поверить ??   -  person Elodie Cmpn    schedule 19.12.2018
comment
Из того, что вы опубликовали, сложно определить, что может вызвать проблему. Попробуйте изменить имя с ClientLoginController на возможно UserLoginController. Ошибка name already in use возникает, когда класс требуется или включен более одного раза. Возможно, вы загружаете класс вручную с помощью оператора require или include?   -  person adam    schedule 19.12.2018
comment
Спасибо, Адам, к сожалению, какое бы имя я ни выбрал, произошла эта ошибка, и я не требую и не включаю ни то, ни другое! я продолжаю пытаться! всем спасибо   -  person Elodie Cmpn    schedule 20.12.2018


Ответы (1)


у меня была эта проблема и

не может быть решен композитором dump-autoload

затем используйте это решение

https://stackoverflow.com/a/64385832/308578

person saber tabatabaee yazdi    schedule 16.10.2020