首页 > 解决方案 > 如何在 laravel 中用这个数据库编写更新函数

问题描述

我正在尝试为订单和产品编写更新功能

我有这个数据库:-orders 表:id status user_id resturant_id created_at updated_at

-产品表:id名称价格resturant_id created_at updated_at

-order_product:order_id product_id created_at updated_at

订单表和产品表之间存在多对多

 public function createOrder(Request $request)
   {
        $order = new Order;
        $order->status = $request->status;
        $order->user_id = $request->user_id;  
        $order->resturant_id = $request->resturant_id;  

        $order->save();
        $product = Product ::find($request->products);
        $order->product()->attach($product);

         return 'Success';
    }
public function UpdateOrder(Request $request , $id){

    $order =  Order::find($id);
    $order->status = $request->status;
    $order->user_id = $request->user_id;  
    $order->resturant_id = $request->resturant_id; 

    $order->update();
    $product = Product ::find($request->products);
    $order->product()->sync($product);

}

这是请求

  {
   "status":" not ready",
   "user_id" : 3,
   "resturant_id" : 1,
    "created_at": "2019-08-13 23:32:40",
    "updated_at": "2019-08-14 00:01:16",    
   "products" :[
     {"product_id" : 4  },
    {"product_id" : 6 }
]

}

它只更新产品的 ID

标签: laravelapi

解决方案


尝试这个

public function UpdateOrder(Request $request , $id){

    $order =  Order::find($id);
    $order->status = $request->status;
    $order->user_id = $request->user_id;  
    $order->resturant_id = $request->resturant_id; 

    $order->save();
    $product = Product ::find($request->products);
    $order->product()->sync($product);

}

我不知道它是否会更新,$product但这会更新$order

希望能帮助到你


推荐阅读