【问题标题】:Where I should put the model creation code? [closed]我应该把模型创建代码放在哪里? [关闭]
【发布时间】:2018-12-20 11:18:17
【问题描述】:

假设我有与模型 Image、Card 等相关的 User 模型。这意味着当我创建一个新用户时,我应该同时创建 Image 和 Card 实例,例如我的控制器的 store 方法中有这样的东西:

DB::beginTransaction();
try {
    $user->saveOrFail();

    $imageObj = new Image();
    $imageObj->user_id = $user->id;
    // set the other fields
    $imageObj->saveOrFail();

    $cardObj = new Card();
    $cardObj->user_id = $user->id;
    // set the other fields
    $cardObj->saveOrFail();
    .......................
    DB::commit();
  }

  return redirect('some');
}

对于超过 2 个相关模型,控制器中的代码过多,那么有没有办法重构此代码以获得更好的可扩展性?

【问题讨论】:

    标签: php laravel design-patterns repository factory


    【解决方案1】:

    我会选择工厂。使用这种模式,您可以轻松地创建新对象以及您需要的任何东西。您只需将正确的参数传递给您的服务。

    查看这些文档以在 SYmfony 中创建工厂模式 https://symfony.com/doc/current/service_container/factories.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 1970-01-01
      • 2019-08-20
      相关资源
      最近更新 更多