我在实施存储库的Laravel应用中重构了与我的用户模型相关的所有数据库访问。
所以,现在,我的所有数据库访问(我使用Eloquent)都通过我的UserRepository。
但我的模型用户中仍然有一些雄辩的操作:
class User extends Model{
....
public static function boot()
{
parent::boot();
static::creating(function ($user) {
$softDeletedUser = User::onlyTrashed()->where('email', '=', $user->email)->first();
if ($softDeletedUser != null) {
$softDeletedUser->restore();
return false;
} else {
$user->token = str_random(30);
if ($user->country_id == 0) {
$user->addGeoData();
}
}
return true;
});
我不知道该怎么办,因为:
那么......在这种情况下我该怎么做?
答案 0 :(得分:0)
我不认为您确实需要将该查询移到存储库中,但由您决定。如果确实需要重用该代码,请将查询添加到存储库类并使用它。在2个地方使用相同的查询并不是什么大不了的事,但如果你有2个以上的地方可能会成为一个问题。