【发布时间】:2016-04-23 12:43:06
【问题描述】:
我在 Laravel 5.2 中使用开箱即用的身份验证(使用工匠命令 make:auth)。它就像一个魅力。
问题是,我想限制只有活动用户的登录(deleted_at = NULL)。
但是,当使用软删除时,我无法使用 user_id 外键检索其他模型(尽管用户已被删除,但我仍然必须访问用户信息)。
什么是好的方法?
我想出的另一种方法是使用“活动”布尔列而不是“deleted_at”日期列。这样,我可以只过滤具有“active”=TRUE 的用户,并且外键没有问题。
在这种情况下,我如何才能限制用户仅在“活动”设置为 TRUE 时才能登录?
干杯!
【问题讨论】:
-
我不明白您为什么希望另一列模仿
deleted_at列,您的理由似乎没有多大意义。 -
如果我使用 deleted_at 列软删除,在检索附加到“用户”的其他模型时,我无法检索用户。或者我可以吗?那太好了
-
你有雄辩的
withTrashed和onlyTrashed方法来确保你得到删除项目或只删除项目的结果。这些应该可以很好地满足您的目的。然后您可以使用trashed方法来检测模型是否已被软删除。 -
在引用其他模型的用户时(例如,从国家/地区的角度查询所有活动和非活动用户时),我可以使用 withTrashed 吗?回到最初的问题:只有“deleted_at”用户才能登录吗?
标签: laravel authentication laravel-5.2