简体   繁体   中英

Laravel Class Socialite not found

What I did:

  • Added "laravel/socialite": "~2.0" to composer.json
  • Run composer update
  • Added provider 'Laravel\\Socialite\\SocialiteServiceProvider' to app.php
  • Added alias 'Socialite' => 'Laravel\\Socialite\\Facades\\Socialite' to app.php

After all this steps I created a new Controller Class which looks like that:

<?php namespace App\Http\Controllers;

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

use Illuminate\Http\Request;

class AuthController extends Controller {

    public function login()
    {                  
        return \Socialite::with('facebook')->redirect();
    }

}

But i still got this error: PHP Fatal error: Class '\\Socialite'

Edit
composer dump-autoload fixed probably the error, but it's still not working correctly.

在您的控制器文件中添加

use Laravel\Socialite\Facades\Socialite;

Just below use Illuminate\\Http\\Request; in your controller add use Socialize;

Check if you have set your alias as "Socialize" as in the Socialite docs says to do this way:

'Socialize' => 'Laravel\Socialite\Facades\Socialite',

It as very confusing to me as well

I had the same issue. Clearing the config cache helped me in this situation:

php artisan config:clear

First of all use ::class, on your config/app.php

'Socialite' => Laravel\Socialite\Facades\Socialite::class,

Second, call the class in your controller

use Socialite;

Third, try clear the config

php artisan config:clear

And lastly check the redirect URL if its working

http://yoursite.com/your_redirect

If anyone still encounters this problem even after trying above solutions, please clear the cache. Most of the time classes and all are cached because of which this error occurs.

php artisan config:clear

'Socialite' => 'Laravel\\Socialite\\Facades\\Socialite' is a mistake that I did too.

It must be declared as 'Socialite' => Laravel\\Socialite\\Facades\\Socialite::class

I had the exact same problem and after the usual half hour of raging I realised that there was a trailing space at the end of my registration line ie

'Laravel\\Socialite\\SocialiteServiceProvider ',

Once I'd removed the space funnily enough it worked!

'Laravel\\Socialite\\SocialiteServiceProvider',

Once again the woes of copy and paste raise their ugly heads!

在 Laravel 6 或更高版本中,尝试运行此命令

composer require laravel/socialite

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM