首页 > 解决方案 > 如何自定义 laravel auth 用户

问题描述

所以我们都知道全局函数 laravelauth()->user()将返回登录的用户对象。

所以我的问题是,有没有办法覆盖函数返回的模型auth()->user()

例如,我有 2 个模型,帐户和用户。我希望 Laravel 在我调用时返回 Account 模型,而不是 User 模型auth()->user()

我需要这个的原因是因为在这个系统上使用了太多的代码auth()->user(),我必须这样做。我要添加的新内容是用户将能够切换多个帐户(未登录用户)并根据帐户显示资源......更像是一个团队。

到目前为止,我已经尝试像这样在 AppServiceProvider.php 上绑定一个新 Gate。

/**
 * Register any application services.
 *
 * @return void
 */
public function register()
{
    $this->app->bind(\Illuminate\Contracts\Auth\Access\Gate::class, function ($app) {
        return new \Illuminate\Auth\Access\Gate($app, function () use ($app) {
            return \App\Account::find(111);
        });
    });
}

但它没有按我的意愿工作。Auth()->user()仍然返回一个登录的用户对象。

标签: phplaravel

解决方案


推荐阅读