【问题标题】:Class 'App Http Controllers Auth User' not found找不到类“App Http Controllers Auth User”
【发布时间】:2019-12-07 03:07:47
【问题描述】:

我在尝试在我的 Laravel 应用中集成 Google 登录时遇到此错误:

找不到类“App\Http\Controllers\Auth\User”

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class SocialiteController extends Controller
{
public function __construct()
{
    $this->middleware('guest')->except('logout');
}


public function redirectToGoogle()
{
    return \Socialite::driver('google')->redirect();
}


public function handleGoogleCallback(Request $request)
{
    $googleUser = \Socialite::driver('google')->stateless()->user();

    $user = \User::whereGoogleId($googleUser->id)->first();

    if ($user) {
        Auth::login($user);

        return LoginController::authenticated($request, $user);
    } else {
        list($first_name, $last_name) = explode(' ', $googleUser->name);
        // signup
        $input = [
            'first_name' => $first_name,
            'last_name' => $last_name,
            'email' => $googleUser->email,
        ];

        $request->session()->flash('google_token', $googleUser->accessToken);

        return RegisterController::showRegistrationForm()->withInput($input)->with;
    }
}

另外,我不知道 USER 的完整命名空间 我是新手。

如果您能提供一个工作教程,我将不胜感激。 你能告诉我解决办法吗?

【问题讨论】:

  • 为用户使用完整的命名空间
  • 试试\User::。请编辑您的问题并粘贴您的代码,不要链接代码图像。并且请删除指向您网站的链接,没有必要。
  • 现在显示“找不到类‘用户’”
  • 你的用户类文件在哪里?
  • 我可以知道 User 类的文件名是什么吗?

标签: php laravel


【解决方案1】:

更新

如果你打算使用 Laravel 提供的默认 User 模型,User 类应该存储在 /app 目录中(先检查一下)。

鉴于您的 User 模型位于 app/Model 目录中,请像这样更新您的代码:

namespace App\Http\Controllers\Auth;

// some imports..

use App\Model\User; // <------

class SocialiteController extends Controller
{

    // some code..

    public function handleGoogleCallback(Request $request)
    {

        // more code..

        $user = User::whereGoogleId($googleUser->id)->first();
//              ^^^^
        // ...
    }
}

注意:显示以下错误:

400 错误请求响应:

{
    "error": "invalid_grant",
    "error_description": "Bad Request"
}

这与您的 Google 应用密钥有关。这是另一个问题的一部分。

【讨论】:

  • 还是Class 'App\Http\Controllers\Auth\User' not found
  • @HALLOweEN 不要忘记在顶部包含use 声明。
  • 有没有可以提供的整合谷歌登录的工作教程?
  • @HALLOweEN 谷歌一下,伙计。请注意,Google+ API 几个月前停止工作,因此请查看更新或更新的教程。那里有几个。祝你有美好的一天;)
【解决方案2】:

如果User 模型文件位于名为Model 的文件夹下,您必须调用User 类的完全限定名称或在代码中添加use 语句,即:

$user = \Model\User::whereGoogleId($googleUser->id)->first();

// or this solution
use \Model\User;
....
$user = User::whereGoogleId($googleUser->id)->first();

【讨论】:

  • 如果您觉得答案有用,请接受并点赞
猜你喜欢
  • 2018-04-11
  • 2017-04-11
  • 2021-08-31
  • 1970-01-01
  • 2021-09-25
  • 2016-04-28
  • 2015-05-10
  • 1970-01-01
相关资源
最近更新 更多