From 2a5de605dcddd4c944d8aee124647e7151307dca Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 5 May 2016 10:15:51 +0300 Subject: [PATCH] Added relationLoaded checks to optimize queries --- app/Http/Requests/ClientRequest.php | 2 +- app/Http/Requests/ExpenseRequest.php | 6 +++--- app/Http/Requests/InvoiceRequest.php | 4 ++-- app/Http/Requests/VendorRequest.php | 2 +- app/Models/Account.php | 6 ++++-- app/Models/Client.php | 10 +++++++--- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/Http/Requests/ClientRequest.php b/app/Http/Requests/ClientRequest.php index adbe2d4c2ae6..ec28cdb77d1d 100644 --- a/app/Http/Requests/ClientRequest.php +++ b/app/Http/Requests/ClientRequest.php @@ -9,7 +9,7 @@ class ClientRequest extends EntityRequest { $client = parent::entity(); // eager load the contacts - if ($client && ! count($client->contacts)) { + if ($client && ! $client->relationLoaded('contacts')) { $client->load('contacts'); } diff --git a/app/Http/Requests/ExpenseRequest.php b/app/Http/Requests/ExpenseRequest.php index d5e2c793c371..ae2e83b6d12f 100644 --- a/app/Http/Requests/ExpenseRequest.php +++ b/app/Http/Requests/ExpenseRequest.php @@ -8,11 +8,11 @@ class ExpenseRequest extends EntityRequest { { $expense = parent::entity(); - // eager load the contacts - if ($expense && ! count($expense->documents)) { + // eager load the documents + if ($expense && ! $expense->relationLoaded('documents')) { $expense->load('documents'); } - + return $expense; } } \ No newline at end of file diff --git a/app/Http/Requests/InvoiceRequest.php b/app/Http/Requests/InvoiceRequest.php index bf24c38839a9..5e2d93139003 100644 --- a/app/Http/Requests/InvoiceRequest.php +++ b/app/Http/Requests/InvoiceRequest.php @@ -8,8 +8,8 @@ class InvoiceRequest extends EntityRequest { { $invoice = parent::entity(); - // eager load the contacts - if ($invoice && ! count($invoice->invoice_items)) { + // eager load the invoice items + if ($invoice && ! $invoice->relationLoaded('invoice_items')) { $invoice->load('invoice_items'); } diff --git a/app/Http/Requests/VendorRequest.php b/app/Http/Requests/VendorRequest.php index a06e5ad808e6..8f96e7c55025 100644 --- a/app/Http/Requests/VendorRequest.php +++ b/app/Http/Requests/VendorRequest.php @@ -9,7 +9,7 @@ class VendorRequest extends EntityRequest { $vendor = parent::entity(); // eager load the contacts - if ($vendor && ! count($vendor->vendor_contacts)) { + if ($vendor && ! $vendor->relationLoaded('vendor_contacts')) { $vendor->load('vendor_contacts'); } diff --git a/app/Models/Account.php b/app/Models/Account.php index c8ece3b4da95..5814ec76423a 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -212,7 +212,9 @@ class Account extends Eloquent public function isGatewayConfigured($gatewayId = 0) { - $this->load('account_gateways'); + if ( ! $this->relationLoaded('account_gateways')) { + $this->load('account_gateways'); + } if ($gatewayId) { return $this->getGatewayConfig($gatewayId) != false; @@ -241,7 +243,7 @@ class Account extends Eloquent return $this->name; } - $this->load('users'); + //$this->load('users'); $user = $this->users()->first(); return $user->getDisplayName(); diff --git a/app/Models/Client.php b/app/Models/Client.php index 85cb543a6b03..4b26f40df0a7 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -256,13 +256,17 @@ class Client extends EntityModel public function getGatewayToken() { - $this->account->load('account_gateways'); + $account = $this->account; + + if ( ! $account->relationLoaded('account_gateways')) { + $account->load('account_gateways'); + } - if (!count($this->account->account_gateways)) { + if (!count($account->account_gateways)) { return false; } - $accountGateway = $this->account->getGatewayConfig(GATEWAY_STRIPE); + $accountGateway = $account->getGatewayConfig(GATEWAY_STRIPE); if (!$accountGateway) { return false;