我在尝试将商品添加到购物车时收到以下错误:
Darryldecode \ Cart \ Exceptions \ InvalidItemException validation.numeric
错误来自我的代码的这一部分:
$customAttributes = [];
if(!empty($request->attr)){
foreach($request->attr as $sub) {
// find the suboption
$sub = Suboption::find($sub);
if (!empty($sub->id)) {
$itemCondition1 = new \Darryldecode\Cart\CartCondition(array(
'name' => $sub->title,
'value' => $sub->price,
'type' => 'additional',
'target' => 'item',
));
array_push($customAttributes, $itemCondition1);
}
}
}
它发生在这里:
Cart::add(array(
'id' => $product->id,
'name' => $product->title,
'price' => $price,
'quantity' => $request->input('quantity'),
'attributes' => $weightArray,
'conditions' => $customAttributes, //here
));
$customAttributes
代码应该获取数据product does have those information And user chose any of it
,如果产品没有任何信息或者用户没有选择任何信息,则假设为ignore
。
代码期望数据无论如何,产品确实具有该信息,用户选择是否,即使用户选择该数据仍然我得到上述错误。
任何想法为什么会这样?
我认为我的问题来自于'price' => $price,
我的添加方法,其中我得到了$price
:
$price = $product->discounts;
if($price->count() > 0 ) {
foreach($discounts as $disc){
if($disc->value_to >= $mytime) {
$price = $product->price - $disc->amount;
}
}
}else{
$price = $product->price;
}
如果没有折扣,这部分应该得到产品价格,如果存在,则获得折扣价。
我如何使用这行代码? here is it
答案 0 :(得分:0)
我使用隐藏字段并从前端而不是控制器方法获取数据。