laravel - 在 Laravel 中哪里可以同时保存不同的模型?
问题描述
我有一个小问题要问你。
我正在使用 Laravel,但我不确定哪个是同时保存不同模型的最佳方式(和位置)。
例如:
当用户创建“RecordSheet”时,我需要自动创建与 RecordSheet 模型相关的其他模型。显然我会在他自己的控制器中创建 RecordSheet 模型:
class RecordSheetController extends Controller
{
public function store(){
RecordSheet::create([
.......
'user_id' => Auth::user()->id
]);
}
}
我应该把其他模型的创建放在哪里?在同一个 RecordSheetController 中?
class RecordSheetController extends Controller
{
public function store(){
DB:beginTranaction()
try{
$record = RecordSheet::create([
.......
'user_id' => Auth::user()->id
]);
ModelB::create([
.......
'recordSheet' => $record->id,
'user_id' => Auth::user()->id
]);
}catch(Exception $e)
{
DB:rollback();
}
DB:committ();
}
}
我不确定那是因为我认为 RecordSheetController 应该只负责“RecordSheet”模型而不是其他模型。
任何建议将不胜感激!谢谢大家!
解决方案
你可以在这个场景中使用Laravel 观察者,创建一个RecordSheetObserver
并将你的ModelB
代码放在created
方法中
推荐阅读
- vba - MS 访问对话框
- c++ - 如何使用 STL 获取结构向量并将其转换为结构元素的向量
- javascript - 以最小值为条件的mongodb查询
- swift - 取消 OperationQueue Swift
- asp.net-core - 如果我在 Controller 中使用 IService 并按 IService->Service->IRepository->Repository 的顺序连接 Iservice,如何添加范围
- python-3.x - 在 for 循环中添加熊猫附加问题
- html - 导航栏左侧的间隙
- javascript - 获取数据后设置状态的问题(React 挂钩)
- regex - 在正则表达式上需要帮助以进行多次替换
- corpus - 我在哪里可以获得 Quanteda 网站上的示例中使用的 data_corpus_irishbudget2010?