簡體   English   中英

使用 Eloquent 插入和更新基於多行的外鍵的最佳方法是什么?

[英]What is the best approach for insert and update multiple rows based foreign key using Eloquent?

我有一個名為“answers”的表,它將存儲客戶對問卷的回答。 桌子看起來像這樣

answers
+-----------------+
|id (PK)          |
|customer_id (FK) |
|question_id (FK) |
|value            |
|_________________|

我的要求是這樣的

{
    "customer_id":1,
    "answer": {
        "1":"My Name", //"1" is question_id , "My Name" is value
        "2":"My Phone Number" //"2" is question_id, "My Phone Number" is value
    }
}

我想要實現的是在 Eloquent 上執行單個查詢或單個操作,而不是一個一個的 foreach 答案來檢查question_idcustomer_id 是否已經存在,否則它將更新,否則它會將答案插入表 'answers'。

通過對每個答案數據一個一個地進行 foreach/循環,這應該不是一個難題。 但是,如果我在“答案”表中已經有 3000++ 行,那么這將是一個大問題。

做到這一點的最佳方法是什么? 也許有任何第三方庫可以用來根據外鍵檢查批量插入/更新多行?

你可以通過 laravel 的UpdateORCreate方法來做到這一點,它可以做你想做的事情。

一般來說,聲明如下:

$model=Model::UpdateOrCreate(["condtion1"=>"value1",...],["field1"=>"value1",...]);

在您的情況下,它將類似於以下內容:

$answer=Answer::UpdateOrCreate(["customer_id"=>$customer_id,"question_id"=>$question_id],["value"=>$value]);

有關更多信息,請查看Laravel Eloquent 文檔(其他創建方法)

暫無
暫無

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

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