簡體   English   中英

使用Laravel同一表中另一行的數據更新行

[英]Update row with data from another row in the same table in Laravel

我正在嘗試在數據庫中更新一行。 我找不到解決辦法。

我有一個父行和一個子行。 我想用CHILD活動(草稿)更新PARENT活動。

在我的控制器中:

public function update(UpdateRequest $request)
  {
    if (Auth::user()->hasRole('Administrateur'))
    {
        // DRAFT ACTIVITY
        $id = $request->id;
        $activity  = Activity::find($id);

        // PARENT ACTIVITY
        $parent_id = $activity->parent_id;
        $parent_activity = Activity::find($parent_id);

        DB::table('activities')->???

      }
  }

你能幫助我嗎 ? 非常感謝你 !

最簡單的方法是在Activity模型上使用update方法,並將新數據作為參數傳遞給它。

例如:

$parent_activity->update([
  'someProperty' => $activity->someProperty,
  ...
]);

不要忘記通過向Activity模型中添加受保護的屬性$fillable來啟用批量分配

要將所有數據復制到$parent_activity ,可以執行以下操作:

$someData = $activity->toArray();

$parent_activity->update($someData);

請注意,您僅更新所需的屬性,而不要說parent_id 您可以使用array_except()幫助器來防止這種情況。

$someData = array_except($activity->toArray(), ['parent_id']);

$parent_activity->update($someData);

暫無
暫無

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

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