重新验证检查字段是否为空


Laravel auth check if field empty

我正在编辑我的laravel授权,用户需要通过点击邮箱中的链接来激活他们的帐户。我的数据库有一个额外的时间戳字段"activated_at"。我如何验证如果'activated_at'不是空的。我发现了以下规则来定制Auth::

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

但是我应该如何添加一个规则来检查值是否为非空?

Laravel的用户提供者试图通过搜索用户数据和传递给Auth::attempt()的数据之间的精确匹配来加载用户-参见'Illuminate'Auth'DatabaseUserProvider::retrieveByCredentials()'Illuminate'Auth'EloquentUserProvider::retrieveByCredentials()的实现,具体取决于您使用的是哪个提供者。因此不可能为Auth::attempt()提供"where field not null"约束。

你可以通过实现你自己的用户提供程序来解决这个问题,但我认为不值得这么做。我建议在用户模型中存储is_active标志。