Laravel auth检查字段是否为空

时间:2015-07-12 20:24:21

标签: php laravel laravel-5

我以某种方式编辑我的laravel auth,用户需要通过单击其邮箱中的链接来激活他们的帐户。 我的数据库有一个额外的时间戳字段' activated_at'。我如何验证是否已激活'不是空的。我发现以下规则可以自定义Auth ::

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) 
{
}

但是我应该如何添加规则以检查值是否为空?

1 个答案:

答案 0 :(得分:0)

Laravel的用户提供程序尝试通过搜索用户数据与传递给Auth :: attempt()的数据之间的完全匹配来加载用户 - 请参阅 \ Illuminate \ Auth \ DatabaseUserProvider :: retrieveByCredentials()的实现 \ Illuminate \ Auth \ EloquentUserProvider :: retrieveByCredentials()取决于您使用的提供商。因此,无法向 Auth :: attempt()提供“where field not null ”约束。

您可以通过实施自己的用户提供商来解决这个问题,但我认为这不值得付出努力。我建议在用户模型中存储is_active标志。