Query optimisations using with()

This commit is contained in:
Deon George
2020-02-10 22:07:46 +11:00
parent cd18b98859
commit f41fc3eb9c
8 changed files with 101 additions and 33 deletions

View File

@@ -19,6 +19,14 @@ class User extends Authenticatable
{
use HasApiTokens,Notifiable,UserSwitch,HasQuickBooksToken;
protected $appends = [
'active_display',
'services_count_html',
'surfirstname',
'switch_url',
'user_id_url',
];
protected $dates = [
'created_at',
'updated_at',
@@ -44,14 +52,6 @@ class User extends Authenticatable
'remember_token',
];
protected $appends = [
'active_display',
'services_count_html',
'surfirstname',
'switch_url',
'user_id_url',
];
protected $visible = [
'active_display',
'id',
@@ -62,6 +62,8 @@ class User extends Authenticatable
'user_id_url',
];
protected $with = ['accounts'];
/**
* The accounts that this user manages
*
@@ -129,8 +131,7 @@ class User extends Authenticatable
*/
public function services()
{
return $this->hasManyThrough(Models\Service::class,Models\Account::class)
->with(['account','product','invoices.items.tax','type']);
return $this->hasManyThrough(Models\Service::class,Models\Account::class);
}
/**
@@ -359,7 +360,6 @@ class User extends Authenticatable
{
$result = new DatabaseCollection();
$clients = $this->all_clients();
$clients->load('accounts');
foreach ($clients->pluck('accounts') as $accounts) {
foreach ($accounts as $o) {
@@ -480,10 +480,6 @@ class User extends Authenticatable
public function next_invoice_items(bool $future=FALSE): DatabaseCollection
{
$result = new DatabaseCollection;
$this->load([
'services.charges',
'services.invoice_items'
]);
foreach ($this->services as $o) {
if ($future) {