laravel在空请求中获取错误

时间:2018-02-13 01:40:46

标签: javascript php laravel

我在尝试将商品添加到购物车时收到以下错误:

  

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

问题是

代码期望数据无论如何,产品确实具有该信息,用户选择是否,即使用户选择该数据仍然我得到上述错误。

演示

https://imgur.com/a/KHJqp

任何想法为什么会这样?

更新

我认为我的问题来自于'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

1 个答案:

答案 0 :(得分:0)

解决

我使用隐藏字段并从前端而不是控制器方法获取数据。