如何使用关系批量更新数据 
                            
                                                    
                        
                    
                    
  
                    
                    Consultant 模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Consultant extends Model
{
    /**
     * 获取顾问订单数据
     */
    public function orders()
    {
        return $this->hasMany('App\Order');
    }
}创建订单(这里使用createMany批量插入数据是正常的)
        $consultant = Consultant::create($request->formData());
        // 开单
        $orders = $request->orderData([
            'customer_id' => $consultant->customer_id
        ]);
        $consultant->orders()->createMany($orders);更新订单(这里saveMany,发现不是批量更新,而是批量插入)
        $consultant = Consultant::find($request->id);
        $data       = [];
        // 获取前端修改的数据
        $orders = collect($this->input('order'))->filter(function($item){
            return isset($item['id']) && $item['status'] == 4;
        });
        foreach ($orders as $order) {
            $data[] = new Order([
                'id'             => $order['id'],
                'reception_id'   => $order['reception_id'],
                'customer_id'    => $order['customer_id'],
                'status'         => 2,
                'type'           => $order['type'],
                'package_id'     => $order['package_id'] ?? null,
                'package_name'   => $order['package_name'] ?? null,
                'product_id'     => $order['product_id'] ?? null,
                'product_name'   => $order['product_name'] ?? null,
                'goods_id'       => $order['goods_id'] ?? null,
                'goods_name'     => $order['goods_name'] ?? null,
                'times'          => $order['times'],
                'unit_id'        => $order['unit_id'] ?? null,
                'specs'          => $order['specs'] ?? null,
                'price'          => $order['price'],
                'payable'        => $order['payable'],
                'amount'         => 0,
                'department_id'  => $order['department_id'],
                'salesman'       => $order['salesman'],
                'remark'         => $order['remark'] ?? null,
                'user_id'        => user()->id,
            ]);
        }
        // 发现使用saveMany 最后生成的是insert into 的sql语句
        $consultant->orders()->saveMany($data); 
           
         
             
                     
                     
             
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: