如果我有一个值数组,我想在上面进行大量插入:
Item::insert([['price' => 1234.25], ['price' => 4321.75]]);
然后我的变异者不会开枪:
public function setPriceAttribute($value)
{
$this->attributes['price'] = round($value, 2) * 100;
}
除非我将每个分成一个创建:
foreach ([['price' => 1234.25], ['price' => 4321.75]] as $new)
Item::create($new);
我在这里遗漏了什么吗?或者我是否必须手动将round($value, 2) * 100
应用于数组中的每个价格值?
我有很多要插入的记录,因此大量插入在数据库上最有效。
答案 0 :(得分:1)
insert
是db,create
是雄辩的。使用Item::create($new);
,但它需要位于foreach
。
insert
不是雄辩的,但可以大规模插入 - 但时间戳更新和作品不会被添加等等。
所以foreach,可能是你最好的选择:
foreach ($news as $new)
{
Item::create($new);
}
无论如何,您似乎都需要foreach
。要么变异,要么创建记录。选择你的毒药。