donglikuang8145 2016-06-25 04:23
浏览 50

重构我在Laravel 5中实现存储库的代码

I'm refactoring all my DB Access related to my User Model in my Laravel app implementing Repositories.

So, now, all my DB Access ( I use Eloquent ) go through my UserRepository.

But I still have some eloquent operations in my model User:

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;
    });

I don't know what to do with that because:

  1. It's about my User Model, not my Controller
  2. It is a static method, so I don't know how to pass $this with (use)
  3. I guess there is something wrong with that....

So... What should I do in this situation?

  • 写回答

1条回答 默认 最新

  • doz95923 2016-06-25 12:24
    关注

    I don't think that you really need to move that query into a repository but it's up to you to decide. If you really need to reuse that code, add the query into a repository class and use it. Using the same query on 2 places isn't really a big deal but it might become a problem if you have more than 2 places.

    评论

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行