Skip to content

Core\ModelHelpers ​

Namespace: Unusualify\Modularous\Entities\Traits\Core\ModelHelpers

The master composition trait. Composes ManageEloquent, ManageModuleRoute, HasScopes, LogsActivity, and ChangeRelationships into a single use statement. Most Modularous modules include this via ModelHelpers.


Composed Traits ​

TraitProvides
ManageEloquentgetTableColumns, definedRelations, definedRelationTypes
ManageModuleRoutegetRouteTitleColumnKey, module route helpers
HasScopesscopePublished, scopeVisible, scopeDraft, global scope registration
LogsActivitySpatie activity log integration
ChangeRelationshipswasChangedRelationships, change tracking

Boot Behavior ​

bootModelHelpers():

  • Enables/disables activity logging based on auth state.
  • On saving: captures dirty translated attribute values into $oldTranslations.
  • On saved: logs translation changes to the Spatie activity log.

Static Properties ​

PropertyTypeDefaultDescription
$defaultAuthorizedModelstringUser::classDefault model class for HasAuthorizable
$authorizableRolesToCheckarray['manager','account-executive']Roles bypassing authorization filter
$assignableRolesToCheckarray['editor','reporter']Roles bypassing assignment filter
$defaultHasCreatorModelstringUser::classDefault model class for HasCreator

Methods ​

MethodSignatureDescription
getTitleValue(): mixedReturns the model's human-readable title (uses getRouteTitleColumnKey)
getShowFormat(): mixedReturns the value used for the admin "show" view
setStateFormatted(?State $state): stringReturns a Vuetify chip HTML string for the given state
setStateablePreview(State $state): stringReturns a chip preview for a state
setStateablePreviewNull(): stringReturns a "No Status" chip
getActivitylogOptions(): LogOptionsReturns Spatie activity log configuration (logs fillable + translated attributes, dirty only)
lastActivities(): MorphManyReturns up to 10 most recent activity log entries with causer eager-loaded
numberOfX(…): intMagic __call — resolves numberOfComments() → comments()->count() for any plural relationship

Magic Accessors ​

__call($method, $arguments) — Resolves numberOf{Relation}() patterns:

php
$article->numberOfComments();   // → $article->comments()->count()
$article->numberOfImages();     // → $article->images()->count()

__get($key) — Returns values from $spreadableMutatorAttributes when set (integration with HasSpreadable).


Usage ​

php
use Unusualify\Modularous\Entities\Traits\Core\ModelHelpers;

class Article extends Model
{
    use ModelHelpers;
}

$article->getTitleValue();
$article->numberOfComments();    // magic count
$article->lastActivities;        // MorphMany query