簡體   English   中英

將數據存儲到不同的表中

[英]Store data into different tables

我有2張桌子

一個是盤子

{
    "data": {
        "id": 1,
        "container_slot_id": 3,
        "created_at": "2015-10-26 08:26:32",
        "updated_at": "2015-10-26 08:26:32"
    }
}

另一個是plate_containers

"data": {
    "id": 1,
    "name": "Mrs. Maritza Pollich DVM",
    "equipment_status_codes_id": 8,
}

這是我的控制器

 public function storePlateCleaningData(PlateCleaningRequest $request, $id)
    {
        $plate = Plate::find($id);

       $data = $request->all();

        if ($plate->update($data)) {
            return response()->json([
                'Success' => [
                    'message' => 'Plate is Cleaned!'
                ]
            ], 201);
        }
        else
        {
            return response()->json([
                'Error' => [
                    'message' => 'Plate is not updated, something went wrong!'
                ]
            ], 400);
        }


    }

我想,當用戶更新了plate ,他必須能夠更新equipment_status_codes_idplate_containers表。 我該如何實現? 我可以將兩個模型都注入到我的構造函數中,但是現在呢?

更新 :表中的關系

$table->integer('plate_container_id')->nullable()->unsigned();

    $table->foreign('plate_container_id')->references('id')->on('plate_containers')->onDelete('cascade')->onUpdate('cascade');

模型看起來像這樣。

盤子

  public function plateContainer()
    {
        return $this->belongsTo('App\Models\PlateContainer');
    }

PlateContainer

public function plates()
{
    return $this->hasMany('App\Models\Plate');
}

我從您的問題中得到的是:

板屬於一個板容器。

如果是這種情況,請嘗試使用以下適用於您控制器的代碼(將xxx替換為equipment_status_codes_id

public function storePlateCleaningData(PlateCleaningRequest $request, $id)
{
    //Let's eager load Plate Container
    $plate = Plate::with('plateContainer')->find($id);

   $data = $request->all();

    if ($plate->update($data)) {

        //Check if plate has container
        if($plate->plateContainer) {
            //Update plate container's equipment_status_codes_id 
            $plate->plateContainer->equipment_status_codes_id = xxx
            $plate->plateContainer->save();
        }

        return response()->json([
            'Success' => [
                'message' => 'Plate is Cleaned!'
            ]
        ], 201);
    }
    else
    {
        return response()->json([
            'Error' => [
                'message' => 'Plate is not updated, something went wrong!'
            ]
        ], 400);
    }


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM