Php Laravel使用自定义UserServiceProvider提供的雄辩模型

Php Laravel使用自定义UserServiceProvider提供的雄辩模型,php,laravel,eloquent,Php,Laravel,Eloquent,我是新来的拉威尔,只是玩弄它,让我的头回到MVC 我正在尝试将我自己的用户身份验证提供程序自定义密码哈希作为一项服务,在Laravel中实现UserProviderInterface 在app/controllers/Account.php内部: public function postCreate() { Auth::attempt(Input::all()); } 我让我的应用程序通过我的自定义提供程序类路由Auth::trunt,并将表单中的Input::all传递给retrie

我是新来的拉威尔,只是玩弄它,让我的头回到MVC

我正在尝试将我自己的用户身份验证提供程序自定义密码哈希作为一项服务,在Laravel中实现UserProviderInterface

在app/controllers/Account.php内部:

public function postCreate() {
    Auth::attempt(Input::all());
}
我让我的应用程序通过我的自定义提供程序类路由Auth::trunt,并将表单中的Input::all传递给retrieveByCredentials方法

在app/services/PasswordHash/PasswordHashUserProvider.php内部:

public function retrieveByCredentials(array $credentials) {
    // Why can't I do this?
    //Error: PasswordHash/User not found
    User::find($credentials['username']);

    dd($credentials);
}

在这一点上,我不知道如何从这个服务类中访问我的用户雄辩的模型。我尝试了名称空间,但没有成功。

服务提供者的引导方法使用服务容器注入依赖项。为此,您应该能够在不使用Facades的情况下执行以下操作,但我不经常使用Facades

class PasswordHashUserProvider extends ServiceProvider
{
    protected $user;

    public function boot(User $user)
    {
        $this->user = $user;
    }

}
然后,您可以通过$this->user访问用户


来源:

您是否尝试使用App\User?是的,没用。我意识到我应该将一个空白的用户模型传递到我的密码类中,并调用其中的方法来创建我的用户模型。我已经通过用户名查询工作了。