我使用laravel 5.3和雄辩的关系引擎。
在我的控制器中,我有将数据插入多个相关表的方法。在少数地方重复这种方法。
TradePartnerData::create([
'trade_partner_data_type' => $dataType,
'trade_partner_id' => $id,
'value' => $value
]);
我希望优化它,我想知道我是否可以在我的模型中准备方法,该方法需要将数据插入数据库?
/*method in controller that I want*/
$model = new TradePartnerData();
$model->makeSpecialInsert($dataType, $id, $value)
然后在控制器中,我只需要使用适当的参数调用模型方法,而无需编写任何模型的键。
现在,我只是在我的模型中保持表格之间的雄辩关系。 所以问题是,如何在模型中准备插入方法,以便我可以使用:
$model->makeSpecialInsert($dataType, $id, $value)
提前致谢!
答案 0 :(得分:2)
如果你有这样的多个控制器,听起来你可能想要设置一个父控制器类结构,以使事情更容易。也就是说,这是你可以投入模型的东西:
public static function quickSave($dataType, $id, $value)
{
return \App\TradePartnerData::firstOrCreate(
['trade_partner_data_type' => $dataType],
['trade_partner_id' => $id],
['value' => $value]
);
}
电话:
$model = TradePartnerData::quickSave($dataType, $id, $value);