2017-04-11 64 views
2

具體錯誤:Laravel版本5.4級「軟件用戶::類」未找到

Class '\App\User::class' not found (View: C:\xampp\htdocs\contrex\resources\views\login.blade.php

我知道這個問題已經發布很多次,但我真的不能找到解決方案。

我試圖創建一個目錄「模型」,所以我可以有我的所有模型。在這之前,它工作得很好,所以我試圖將設置改回原來的位置 - 但現在它不起作用。

我user.php的

<?php 

namespace App; 
namespace Illuminate\Foundation\Auth; 

use Illuminate\Database\Eloquent\Model; 
use Illuminate\Auth\Authenticatable; 
use Illuminate\Auth\Passwords\CanResetPassword; 
use Illuminate\Foundation\Auth\Access\Authorizable; 
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; 
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; 
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; 
use Illuminate\Notifications\Notifiable; 

class User extends Model implements 
    AuthenticatableContract, 
    AuthorizableContract, 
    CanResetPasswordContract 
{ 
    use Authenticatable, Authorizable, CanResetPassword; 

    use Notifiable; 

    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = [ 
     'name', 'email', 'facebook_id', 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'remember_token', 
    ]; 


} 

我UserController.php

<?php 

namespace App\Http\Controllers; 

use App\User; 

use Illuminate\Http\Request; 

class UserController extends Controller 
{ 
    public function index(){ 
     echo 'index'; 
    } 
    public function create(){ 
     echo 'create'; 
    } 
    public function store(Request $request){ 
     echo 'store'; 
    } 
    public function show(){ 
    } 
    public function edit($id){ 
     echo 'edit'; 
    } 
    public function update(Request $request, $id){ 
     echo 'update'; 
    } 
    public function destroy($id){ 
     echo 'destroy'; 
    } 

} 

我SocialAuthController.php

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\User; 
use Illuminate\Support\Facades\Auth; 
use Laravel\Socialite\Facades\Socialite; 

class SocialAuthController extends Controller 
{ 
    public function redirect() 
    { 
     return Socialite::driver('facebook')->with(['auth_type' => 'rerequest'])->redirect(); 
    } 

    public function callback() 
    { 
     try { 
      $user = Socialite::driver('facebook')->user(); 
     } catch (Exception $e) { 
      return redirect('auth/facebook'); 
     } 

     if($user->email == null) 
      return Socialite::driver('facebook')->with(['auth_type' => 'rerequest'])->redirect(); 

     $authUser = $this->findOrCreateUser($user); 

     Auth::login($authUser, true); 

     return redirect()->route('login'); 
    } 

    private function findOrCreateUser($facebookUser) 
    { 

     $authUser = User::where('facebook_id', $facebookUser->id)->first(); 

     if ($authUser){ 
      return $authUser; 
     } 

     return User::create([ 
      'name' => $facebookUser->name, 
      'email' => $facebookUser->email, 
      'facebook_id' => $facebookUser->id, 
     ]); 
    } 

} 

上auth.php設置

'providers' => [ 
     'users' => [ 
      'driver' => 'eloquent', 
      'model' => 'App\User::class', 
     ], 

上composer.json設置

"autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 

我嘗試不同的事情 - 也運行php artisan config:clear

任何想法?

回答

4

你有User.php兩個命名空間,所以更改此:

namespace Illuminate\Foundation\Auth; 

到:

use Illuminate\Foundation\Auth; 
+0

感謝,也讓它在'auth.php'工作改變了從''應用程序\用戶:: class''到「App \ User'' –