我是Laravel的新手,只是玩弄它并重新回到MVC。
我尝试将自己的用户身份验证提供程序(自定义密码哈希)作为在Laravel中实现UserProviderInterface的服务。
内部app / controllers / Account.php:
public function postCreate() {
Auth::attempt(Input::all());
}
我的应用程序路由Auth ::尝试通过我的自定义提供程序类,并将表单中的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);
}
此时我对如何从此服务类中访问我的用户雄辩模型感到迷茫。我尝试了名称空间,但没有运气。
答案 0 :(得分:0)
服务提供程序上的引导方法使用服务容器注入依赖项。为此,您应该能够执行以下操作(不使用外墙,但我不经常使用外墙)。
class PasswordHashUserProvider extends ServiceProvider
{
protected $user;
public function boot(User $user)
{
$this->user = $user;
}
}
然后,您可以通过$this->user
来源:https://laravel.com/docs/master/providers#the-boot-method