我在 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粉2960800762024-02-18 14:33:19
用键名和值构建一个简单的数组怎么样?
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, ]