perf: using the connection of the current model when open the transaction.

This commit is contained in:
Cidos 2022-11-01 15:08:44 +08:00 committed by GitHub
parent 5de36c571d
commit 440bc229f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -186,7 +186,7 @@ class DatabaseAdapter implements DatabaseAdapterContract, BatchDatabaseAdapterCo
*/ */
public function removePolicies(string $sec, string $ptype, array $rules): void public function removePolicies(string $sec, string $ptype, array $rules): void
{ {
DB::transaction(function () use ($sec, $rules, $ptype) { $this->eloquent->getConnection()->transaction(function () use ($sec, $rules, $ptype) {
foreach ($rules as $rule) { foreach ($rules as $rule) {
$this->removePolicy($sec, $ptype, $rule); $this->removePolicy($sec, $ptype, $rule);
} }
@ -276,7 +276,7 @@ class DatabaseAdapter implements DatabaseAdapterContract, BatchDatabaseAdapterCo
*/ */
public function updatePolicies(string $sec, string $ptype, array $oldRules, array $newRules): void public function updatePolicies(string $sec, string $ptype, array $oldRules, array $newRules): void
{ {
DB::transaction(function () use ($sec, $ptype, $oldRules, $newRules) { $this->eloquent->getConnection()->transaction(function () use ($sec, $ptype, $oldRules, $newRules) {
foreach ($oldRules as $i => $oldRule) { foreach ($oldRules as $i => $oldRule) {
$this->updatePolicy($sec, $ptype, $oldRule, $newRules[$i]); $this->updatePolicy($sec, $ptype, $oldRule, $newRules[$i]);
} }
@ -296,7 +296,7 @@ class DatabaseAdapter implements DatabaseAdapterContract, BatchDatabaseAdapterCo
public function updateFilteredPolicies(string $sec, string $ptype, array $newPolicies, int $fieldIndex, string ...$fieldValues): array public function updateFilteredPolicies(string $sec, string $ptype, array $newPolicies, int $fieldIndex, string ...$fieldValues): array
{ {
$oldRules = []; $oldRules = [];
DB::transaction(function () use ($sec, $ptype, $fieldIndex, $fieldValues, $newPolicies, &$oldRules) { $this->eloquent->getConnection()->transaction(function () use ($sec, $ptype, $fieldIndex, $fieldValues, $newPolicies, &$oldRules) {
$oldRules = $this->_removeFilteredPolicy($sec, $ptype, $fieldIndex, ...$fieldValues); $oldRules = $this->_removeFilteredPolicy($sec, $ptype, $fieldIndex, ...$fieldValues);
$this->addPolicies($sec, $ptype, $newPolicies); $this->addPolicies($sec, $ptype, $newPolicies);
}); });