我在laravel只有三天大,昨天我尝试使用eloquent创建一个身份验证系统,所以我没有看就删除了默认的User模型,然后我尝试根据我从文档中读到的内容创建我自己的模型。按照我学习和理解的方式设置好所有内容后,我尝试运行我的应用程序,但每当我输入正确的用户名和密码时,我都会收到此错误消息
Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials()
must be an instance of Illuminate\Auth\UserInterface, instance of User given, called in dir我不知道EloquentUserProvider是什么,也不知道它从何而来。我最初的模型是这样的
class User extends Eloquent {}我与这个错误斗争了一整天(毫不夸张),但今天我从这个SO Can't authenticate user in laravel中发现,这是因为我没有实现一些接口,所以他们将我链接到https://github.com/laravel/laravel/blob/master/app/models/User.php,在那里我复制了最初删除的默认模型。
我几乎在整个学习过程中都在使用文档,在authentication和eloquent的文档中没有提到我们应该实现这些接口,以便能够使用Auth::attempt()方法,我现在的问题是,那么我们(新手)如何知道实现什么和不实现什么,或者这些接口中的任何一个都能做什么。
发布于 2014-08-12 20:13:50
这很简单。这是拉威尔的要求。默认情况下,将为您生成用户模型。如果不需要实现接口的方法,只需在User类中将其添加为空。当然,在您的示例中,要扩展或实现的内容将在启动时显示为错误。仔细阅读它们可以给你所有的帮助。
此外,如果您想使用不同的用户身份验证功能,或扩展现有的功能,您可以查看一些信息here in the docs
https://stackoverflow.com/questions/25262648
复制相似问题