foreach($menuItem1 as &$a){
$a = $a*$amount;
}
$numArray = array_map('intval', $menuItem1);
foreach($menuItem2 as $in){
DB::table('ingredients')->where('id', $in)->decrement('ingredient_stock', $numArray);
}
$ numArray的结果:
array(3){[0] => int(6)[1] => int(8)[2] => int(24)} array(2){[0] => int(1)[1] => int(2)}
我想运行查询,但得到此错误:传递给减量方法的非数字值。为什么呢?
答案 0 :(得分:0)
在减量方法中传递要减少多少的值。
请尝试以下操作。
$num_i = 0;
foreach($menuItem2 as $in){
DB::table('ingredients')->where('id', $in)->decrement('ingredient_stock', $numArray[$num_i]);
$num_i = $num_i + 1;
}
答案 1 :(得分:0)
decrement
需要一个数值,一个数字,而不是一个数字数组。
您需要重新构建$numArray
。你可以把它变成一个关联数组,菜单项id为关键[ $menuItem1ID => valueForMenuItem1, $menuItem2ID => valueForMenuItem2, ]
然后在你的循环而不是->decrement('ingredient_stock', $numArray);
做->decrement('ingredient_stock', $numArray[$in]);