Laravel更新或插入foreach处理



我在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
]
]

但当它进入CCD_ 3时,它失败了,因为阵列不在正确的结构中。

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

如何将这些dynamic值插入到table中?

用键名称和值构建一个简单的数组怎么样?

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,
]

最新更新