MembersTable
extends BaseTable
in package
Members Table - Central repository for user management.
Handles member data, relationships, validation, and automatic workflows. Triggers ageUpReview() and warrantableReview() on every save operation.
Tags
Table of Contents
Constants
- CACHE_GROUPS_TO_CLEAR = []
- CACHES_TO_CLEAR = []
- ID_CACHES_TO_CLEAR = []
Properties
- $Branches : BranchesTable|BelongsTo
- $CurrentMemberRoles : MemberRolesTable|HasMany
- $GatheringAttendances : GatheringAttendancesTable|HasMany
- $MemberQuickLoginDevices : MemberQuickLoginDevicesTable|HasMany
- $MemberRoles : MemberRolesTable|HasMany
- $Parents : MembersTable|BelongsTo
- $PendingAuthorizations : PendingAuthorizationsTable|HasMany
- $PreviousMemberRoles : MemberRolesTable|HasMany
- $ProfilePhoto : DocumentsTable|BelongsTo
- $Roles : RolesTable|BelongsToMany
- $UpcomingMemberRoles : MemberRolesTable|HasMany
Methods
- addBranchScopeQuery() : SelectQuery
- Add branch-based data scoping to a query.
- afterDelete() : void
- After delete hook to capture impersonation audit trail entries.
- afterSave() : void
- After-save handler for automatic cache invalidation.
- beforeSave() : void
- Execute automatic member processing before entity save.
- buildRules() : RulesChecker
- Build application-level business rules for data integrity.
- deleteMany() : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
- deleteManyOrFail() : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
- findOrCreate() : Member
- get() : Member
- getSchema() : TableSchemaInterface
- Configure schema with JSON field support.
- getValidationQueueCount() : int
- Get count of members requiring validation processing.
- initialize() : void
- Initialize table configuration and associations.
- newEmptyEntity() : Member
- newEntities() : array<string|int, Member>
- newEntity() : Member
- patchEntities() : array<string|int, Member>
- patchEntity() : Member
- save() : Member|false
- saveMany() : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
- saveManyOrFail() : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
- saveOrFail() : Member
- validationDefault() : Validator
- Define validation rules for member data.
- logImpersonationAction() : void
- Record impersonated writes to audit log table.
Constants
CACHE_GROUPS_TO_CLEAR
protected
array<string|int, string>
CACHE_GROUPS_TO_CLEAR
= []
Cache groups to clear entirely on save
CACHES_TO_CLEAR
protected
array<string|int, array{string, string}>
CACHES_TO_CLEAR
= []
Static cache entries to clear on save
ID_CACHES_TO_CLEAR
protected
array<string|int, array{string, string}>
ID_CACHES_TO_CLEAR
= []
Entity-ID cache prefixes to clear on save
Properties
$Branches
public
BranchesTable|BelongsTo
$Branches
$CurrentMemberRoles
public
MemberRolesTable|HasMany
$CurrentMemberRoles
$GatheringAttendances
public
GatheringAttendancesTable|HasMany
$GatheringAttendances
$MemberQuickLoginDevices
public
MemberQuickLoginDevicesTable|HasMany
$MemberQuickLoginDevices
$MemberRoles
public
MemberRolesTable|HasMany
$MemberRoles
$Parents
public
MembersTable|BelongsTo
$Parents
$PendingAuthorizations
public
PendingAuthorizationsTable|HasMany
$PendingAuthorizations
$PreviousMemberRoles
public
MemberRolesTable|HasMany
$PreviousMemberRoles
$ProfilePhoto
public
DocumentsTable|BelongsTo
$ProfilePhoto
$Roles
public
RolesTable|BelongsToMany
$Roles
$UpcomingMemberRoles
public
MemberRolesTable|HasMany
$UpcomingMemberRoles
Methods
addBranchScopeQuery()
Add branch-based data scoping to a query.
public
addBranchScopeQuery(SelectQuery $query, array<string|int, int> $branchIDs) : SelectQuery
Child tables should override for custom branch relationships.
Parameters
- $query : SelectQuery
-
The query to modify
- $branchIDs : array<string|int, int>
-
Authorized branch IDs
Return values
SelectQuery —Query with branch filtering
afterDelete()
After delete hook to capture impersonation audit trail entries.
public
afterDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
- $event : EventInterface
-
Delete event
- $entity : EntityInterface
-
Entity being deleted
- $options : ArrayObject
-
Delete options
afterSave()
After-save handler for automatic cache invalidation.
public
afterSave(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
- $event : EventInterface
-
The afterSave event
- $entity : EntityInterface
-
The saved entity
- $options : ArrayObject
-
Save options
beforeSave()
Execute automatic member processing before entity save.
public
beforeSave(Event $event, EntityInterface $entity, ArrayObject $options) : void
Triggers ageUpReview() for minor-to-adult transitions and warrantableReview() for warrant eligibility updates.
Parameters
- $event : Event
-
The beforeSave event
- $entity : EntityInterface
-
The Member entity being saved
- $options : ArrayObject
-
Save operation options
buildRules()
Build application-level business rules for data integrity.
public
buildRules(RulesChecker $rules) : RulesChecker
Enforces email uniqueness across the organization.
Parameters
- $rules : RulesChecker
-
Rules checker instance
Return values
RulesChecker —Configured rules checker
deleteMany()
public
deleteMany(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
Parameters
- $entities : iterable<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>|falsedeleteManyOrFail()
public
deleteManyOrFail(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
Parameters
- $entities : iterable<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>findOrCreate()
public
findOrCreate(mixed $search[, callable|null $callback = = 'null' ][, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
- $search : mixed
- $callback : callable|null = = 'null'
- $options : array<string|int, mixed> = = '[]'
Return values
Memberget()
public
get(mixed $primaryKey[, array<string|int, mixed>|string $finder = = '\'all\'' ][, CacheInterface|string|null $cache = = 'null' ][, Closure|string|null $cacheKey = = 'null' ], mixed ...$args) : Member
Parameters
- $primaryKey : mixed
- $finder : array<string|int, mixed>|string = = '\'all\''
- $cache : CacheInterface|string|null = = 'null'
- $cacheKey : Closure|string|null = = 'null'
- $args : mixed
Return values
MembergetSchema()
Configure schema with JSON field support.
public
getSchema() : TableSchemaInterface
Return values
TableSchemaInterface —Configured schema
getValidationQueueCount()
Get count of members requiring validation processing.
public
static getValidationQueueCount() : int
Counts members with membership cards or minor statuses pending review.
Return values
int —Number of members requiring validation review
initialize()
Initialize table configuration and associations.
public
initialize(array<string, mixed> $config) : void
Parameters
- $config : array<string, mixed>
-
Table configuration
newEmptyEntity()
public
newEmptyEntity() : Member
Return values
MembernewEntities()
public
newEntities(array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : array<string|int, Member>
Parameters
- $data : array<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
array<string|int, Member>newEntity()
public
newEntity(array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
- $data : array<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
MemberpatchEntities()
public
patchEntities(iterable<string|int, mixed> $entities, array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : array<string|int, Member>
Parameters
- $entities : iterable<string|int, mixed>
- $data : array<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
array<string|int, Member>patchEntity()
public
patchEntity(EntityInterface $entity, array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
- $entity : EntityInterface
- $data : array<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
Membersave()
public
save(EntityInterface $entity[, array<string|int, mixed> $options = = '[]' ]) : Member|false
Parameters
- $entity : EntityInterface
- $options : array<string|int, mixed> = = '[]'
Return values
Member|falsesaveMany()
public
saveMany(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
Parameters
- $entities : iterable<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>|falsesaveManyOrFail()
public
saveManyOrFail(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
Parameters
- $entities : iterable<string|int, mixed>
- $options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>saveOrFail()
public
saveOrFail(EntityInterface $entity[, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
- $entity : EntityInterface
- $options : array<string|int, mixed> = = '[]'
Return values
MembervalidationDefault()
Define validation rules for member data.
public
validationDefault(Validator $validator) : Validator
Parameters
- $validator : Validator
-
Validator instance
Return values
Validator —Configured validator
logImpersonationAction()
Record impersonated writes to audit log table.
protected
logImpersonationAction(string $defaultOperation, EntityInterface $entity) : void
Parameters
- $defaultOperation : string
-
Operation fallback (save/delete)
- $entity : EntityInterface
-
Affected entity