Конкретная ошибка:
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
и т.п.
Есть идеи?
У вас есть два пространства имен в User.php
так что измени это:
namespace Illuminate\Foundation\Auth;
чтобы:
use Illuminate\Foundation\Auth;
Других решений пока нет …