Laravel:知道在模型中实施什么

时间:2014-08-12 11:03:45

标签: php laravel-4

我只是在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发现这是因为我没有实现某些界面,所以他们把我联系到{{3}我复制了我最初删除的默认模型。

我几乎通过我的学习过程使用了文档,并且在authenticationeloquent的文档中没有提到我们假设我们要实现这些接口以便我们能够使用Auth::attempt()方法,我现在的问题是我们(新手)如何知道要实现什么,不实现什么,或者这些接口甚至做什么。

1 个答案:

答案 0 :(得分:0)

这很简单。这是一个laravel的要求。默认情况下会为您生成用户模型。如果您不需要实现界面的方法,只需在用户类中将它们添加为空。 当然,在您的情况下,扩展或实施的内容将在启动时显示为错误。仔细阅读它们可以给你所有的答案。

此外,如果您想使用不同的用户身份验证功能或扩展现有功能,您可以查看一些信息here in the docs