From 1194a08c48fd4374bca7830e8c9f138ece20bafc Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Fri, 18 Oct 2019 17:07:35 -0700 Subject: [PATCH] allow for custom colums on creation of tenant --- .gitignore | 1 + .../Database/DatabaseStorageDriver.php | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9df52aa7..8264024c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ psysh phpunit_var_*.xml coverage/ clover.xml +.idea/ \ No newline at end of file diff --git a/src/StorageDrivers/Database/DatabaseStorageDriver.php b/src/StorageDrivers/Database/DatabaseStorageDriver.php index 95df006e..5f3c8e59 100644 --- a/src/StorageDrivers/Database/DatabaseStorageDriver.php +++ b/src/StorageDrivers/Database/DatabaseStorageDriver.php @@ -103,7 +103,22 @@ class DatabaseStorageDriver implements StorageDriver public function createTenant(Tenant $tenant): void { $this->centralDatabase->transaction(function () use ($tenant) { - Tenants::create(['id' => $tenant->id, 'data' => json_encode($tenant->data)])->toArray(); + $custom_columns = Tenants::customColumns(); + + $tenant_data = ['id' => $tenant->id]; + + $data = collect($tenant->data) + ->reject(function($value, $key) use ($tenant, $custom_columns, &$tenant_data) { + if (isset($custom_columns[$key])) { + $tenant_data[$key] = $value; + return true; + } + return false; + })->all(); + + $tenant_data['data'] = json_encode($data); + + Tenants::create($tenant_data)->toArray(); $domainData = []; foreach ($tenant->domains as $domain) {