【问题标题】:Laravel 5.7 Cannot Declare Class Name in UseLaravel 5.7 无法声明正在使用的类名
【发布时间】:2018-12-19 15:01:09
【问题描述】:

我正在尝试在我的网站上进行多重身份验证;我希望以用户身份查看日志,以客户端身份查看日志。我有一个用户表,我用代码而不是邮件和 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'));
    }
}

登录控制器

<?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,因为该名称已在使用中

有人可以帮助我解决并了解正在发生的事情吗?谢谢大家!

【问题讨论】:

  • ClientLoginController 是否位于 App\Http\Controllers 中?
  • 抱歉我没写,是的,它是:namespace App\Http\Controllers;
  • 此命名空间中还有另一个类“ClientLoginController”。可能是您有另一个文件(名称完全不同)错误地具有相同的类名(常见的复制粘贴错误)
  • 登录应该用一个控制器完成。使用某种类型的角色来确定发回/显示登录用户的内容。我推荐使用 Gates/Polices
  • Stormhammer 感谢您的回复,不幸的是,我在我的小代码中进行了深入查找,没有其他类名相同...

标签: laravel controller laravel-5.7 laravel-controller


【解决方案1】:

我遇到了这个问题

composer dump-autoload 无法解决

然后使用这个解决方案

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多