Optimised Organisation model to prevent it running 4 extra queries per instance
This commit is contained in:
@@ -18,27 +18,6 @@ use Illuminate\Database\Eloquent\Builder;
|
|||||||
*/
|
*/
|
||||||
interface OrganisationInterface
|
interface OrganisationInterface
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Get a count of members within this organisation (includes admins).
|
|
||||||
*
|
|
||||||
* @return integer The number of members within the organisation.
|
|
||||||
*/
|
|
||||||
public function getMemberCountAttribute();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a count of administrators within this organisation.
|
|
||||||
*
|
|
||||||
* @return integer The number of admins within the organisation.
|
|
||||||
*/
|
|
||||||
public function getAdminCountAttribute();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a count of members within this organisation (excludes admins).
|
|
||||||
*
|
|
||||||
* @return integer The number of members within the organisation.
|
|
||||||
*/
|
|
||||||
public function getTotalMemberCountAttribute();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete this organisation from the database, along with any linked objects.
|
* Delete this organisation from the database, along with any linked objects.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -65,8 +65,7 @@ class Organisation extends Model implements OrganisationInterface
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $appends = [
|
protected $appends = [
|
||||||
'member_count',
|
|
||||||
'admin_count'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,30 +83,6 @@ class Organisation extends Model implements OrganisationInterface
|
|||||||
public $timestamps = true;
|
public $timestamps = true;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a count of members within this organisation (includes admins).
|
|
||||||
*/
|
|
||||||
public function getMemberCountAttribute()
|
|
||||||
{
|
|
||||||
return $this->members()->count();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a count of administrators within this organisation.
|
|
||||||
*/
|
|
||||||
public function getAdminCountAttribute()
|
|
||||||
{
|
|
||||||
return $this->administrators()->count();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a count of members within this organisation (excludes admins).
|
|
||||||
*/
|
|
||||||
public function getTotalMemberCountAttribute()
|
|
||||||
{
|
|
||||||
return $this->members()->count() + $this->administrators()->count();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of members within this organisation.
|
* Get a list of members within this organisation.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user