在 Laravel 5 中找不到类“App\Http\Controllers\admin\Auth”

Posted

技术标签:

【中文标题】在 Laravel 5 中找不到类“App\\Http\\Controllers\\admin\\Auth”【英文标题】:Class 'App\Http\Controllers\admin\Auth' not found in Laravel 5在 Laravel 5 中找不到类“App\Http\Controllers\admin\Auth” 【发布时间】:2015-05-10 21:59:13 【问题描述】:

我在登录期间收到类似 Class App\Http\Controllers\admin\Auth not found in Laravel 5 的错误。

Routes.php

Route::group(array('prefix'=>'admin'),function()
    Route::get('login', 'admin\AdminHomeController@showLogin');
    Route::post('check','admin\AdminHomeController@checkLogin');    
);

AdminHomeController.php

<?php namespace App\Http\Controllers\admin;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class AdminHomeController extends Controller 

    //
    
    public function showLogin()
    
        return view('admin.login');
    
    
    public function checkLogin(Request $request)
    
        $data=array(
            'username'=>$request->get('username'),
            'password'=>$request->get('password')
        );

        if(Auth::attempt($data))
        
            return redirect::intended('admin/dashboard');
        
        else
        
            return redirect('admin/login');
        
        
    
    
    public function logout()
    
        Auth::logout();
        return redirect('admin/login');
    
    public function showDashboard()
    
        return view('admin.dashboard');
    

login.blade.php

<html>
<body>
 !! Form::open(array('url' => 'admin/check', 'id' => 'login')) !!
        
                <input type="text" name="username" id="username" placeholder="Enter any username" />
                <input type="password" name="password" id="password" placeholder="Enter any password" />
                <button name="submit">Sign In</button>
            
        !! Form::close() !!
</body>
</html>

【问题讨论】:

【参考方案1】:

因为除非您专门导入 Auth 命名空间,否则您的控制器是命名空间的,PHP 将假定它位于类的命名空间下,从而给出此错误。

要解决此问题,请在 AdminHomeController 文件的顶部添加 use Auth; 以及您的其他使用语句,或者在 Auth 的所有实例前面加上反斜杠,如下所示:\Auth 让 PHP 知道从中加载它全局命名空间。

【讨论】:

但我不知道为什么它会进入 else 条件 public function checkLogin(Request $request) $data=array('username'=>$request->get('username'), '密码'=>$request->get('密码') ); if(Auth::attempt($data)) echo "我不会过来";死;返回重定向::意图('管理员/仪表板'); else echo "总是来这里";死;返回重定向('管理员/登录'); 在 auth.php 文件 'table' => 'sysadmin' 和 sysadmin 中只有两个字段“用户名”主键和“密码”

以上是关于在 Laravel 5 中找不到类“App\Http\Controllers\admin\Auth”的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 5 中找不到助手类

在 Laravel 5 中找不到用户类

在 laravel 5 中找不到类控制器

在 Laravel 5 中找不到类“App\Http\Controllers\Artisan”

在基本 Laravel 5.4 教程中找不到类“任务”

在 Laravel 5.2 中找不到类“App\Http\Controllers\Session”[重复]