[英]Laravel 5.4 Class 'App\Http\Controllers\Admin\Auth\Auth' not found
[英]Laravel error: Class 'App\Http\Controllers\Auth\Auth' not found for multi authentication
我想在我的 LoginController 中使用多重身份驗證,我有以下代碼(為簡潔起見)
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class LoginController extends Controller{
use AuthenticatesUsers;
public function __construct()
{
$this->middleware('guest')->except('logout');
$this->middleware('guest:admin')->except('logout');
}
public function showAdminLoginForm()
{
return view('auth.login', ['url' => 'admin']);
}
public function adminLogin(Request $request){
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6'
]);
--> if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->get('remember'))) {
return redirect()->intended('/admin');
}
return back()->withInput($request->only('email', 'remember'));
}
}
當我登錄時,它會產生錯誤。
Class 'App\Http\Controllers\Auth\Auth' not found
它針對的是我用箭頭指向的那條線。
請問錯誤的原因可能是什么,我該如何糾正它。
在 PHP 中引用 class 名稱時,它們都充當relative ,這意味着 class 名稱將附加到當前命名空間的任何內容。
如果您不在命名空間中,並且您查找 class Auth
, PHP 將嘗試查找完全限定的 class 名稱(命名空間 + 類)的Auth
。 如果您在命名空間App
中並查找 class Auth
, PHP 將嘗試查找App\Auth
或App
命名空間中定義的Auth
class 。
因為您的 controller 位於命名空間App\Http\Controllers\Auth
內,所以它正在同一命名空間內查找 class Auth
。
為了查找不同的命名空間,通過絕對查找,您可以在 class 前面加上一個\
反斜杠(從根開始),或者添加一個use
import 語句。
按照Laravel 文檔中的示例,為適當的外觀添加use
語句應該可以解決您的錯誤:
use Illuminate\Support\Facades\Auth;
這可以與 class 中的其他use
導入語句一起放置。 快樂編碼!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.