Laravel updateOrInsert 處理 foreach
P粉538462187
P粉538462187 2024-02-17 19:25:47
0
1
358

我在 DB 中有多個列,我需要填入這些欄位中的值。為了實現這一點,我使用 foreach 迴圈。

$update = [];

foreach ($userPermissions->getPermissionNames() as $t)
{
    if (in_array($t, $permissions))
    {
        $update[] =  [$t => 1];
    }
    else{
        $update[] = [$t => 0];
    }
}

這個陣列的輸出在這裡:

array:2 [▼
  0 => array:1 [▼
    "is_admin" => 1
  ]
  1 => array:1 [▼
    "is_something_else" => 1
  ]
]

但是當它進入 updateOrInsert 時它會失敗,因為陣列的結構不正確。

UserPermission::updateOrInsert(['user_id' => $user->id], $update);

如何將這些 dynamic 值插入到 table 中?

P粉538462187
P粉538462187

全部回覆(1)
P粉296080076

用鍵名和值建立一個簡單的陣列怎麼樣?

foreach ($userPermissions->getPermissionNames() as $t)
{
    // Cast the bool to an int
    $update[$t] = (int) in_array($t, $permissions);
}

它應該會產生類似的東西,

[
    'is_admin' => 1,
    'is_something_else' => 1,
]
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板