让我们假设我有与模型Image,Card等相关的User模型。这意味着当我创建新用户时,我应该与其一起创建Image和Card实例,例如我的控制器的存储方法中有类似的内容:
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');
}
对于两个以上的相关模型,控制器中的代码太多,那么对于将代码放置在何处以获得更好的可伸缩性,是否有任何想法或建议?
答案 0 :(得分:1)
我会选择“工厂”。使用此模式,您可以轻松创建新对象以及所需的任何对象。您只需要将正确的参数传递给您的服务即可。
检查这些文档以在SYmfony中创建Factory模式 https://symfony.com/doc/current/service_container/factories.html