【问题标题】:ErrorException: in_array() expects parameter 2 to be array, bool given in fileErrorException: in_array() 期望参数 2 是数组,文件中给出的布尔值
【发布时间】:2021-05-22 11:15:57
【问题描述】:

运行此代码时出现此错误

foreach ($orderItems as $orderItem) {
        if (in_array($orderItem['product_id'], $coupon->products_applicable)) {
            $coupon->products_applicable = true;
       }  
     }

product_applicable的dd是

 dd($coupon->products_applicable)

    array:2 [
  0 => "2"
  1 => "1"
]

$orderItems 的 dd 是

    Illuminate\Database\Eloquent\Collection {#1553
  #items: array:2 [
    0 => App\OrderItem {#1554
      +hidden: array:3 [
        0 => "created_at"
        1 => "updated_at"
        2 => "deleted_at"
      ]
      +guarded: []
      #connection: "mysql"
      #table: "order_items"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      -----etc
        
    }
  ]
}

我想检查带有 Products_applicable 值的订单商品的 product_ids 注意 ->Products_applicable 在 mysql 中使用 casts 存储为 json

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    该错误是因为您在第一次进入 if 块之后为该属性 $coupon->products_applicable 分配了 true 。

    foreach ($orderItems as $orderItem) {
            if (in_array($orderItem['product_id'], $coupon->products_applicable)) {
                $coupon->products_applicable = true; // this is the error
           }  
     }
    

    您可以通过将 $coupon->products_applicable 分配给像这样的任何临时变量来解决此问题

    $temp = $coupon->products_applicable
    foreach ($orderItems as $orderItem) {
            if (in_array($orderItem['product_id'], $temp)) {
                $coupon->products_applicable = true; // this is the error
           }  
     }
    

    【讨论】:

      【解决方案2】:

      看你的代码

      foreach ($orderItems as $orderItem) {
         if (in_array($orderItem->product_id, $coupon->products_applicable)) {
            $coupon->products_applicable = true;
         }  
      }
      

      第一次运行良好,然后将数组$coupon->products_applicable 更改为true,所以在第二次迭代中,你有 bool 值而不是数组。 不知道您的任务,但您需要在此之后添加break 或更改有关您的任务的代码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-14
        • 1970-01-01
        • 2014-06-19
        • 2019-12-16
        • 1970-01-01
        相关资源
        最近更新 更多