Docs Navigation Open
Data Model
Review the main Eloquent models used by Evolution CMS and how resources, TVs, users, permissions, and code elements relate to each other.
Main Content Models
EvolutionCMS\Models\SiteContent— resources/documents in the treeEvolutionCMS\Models\SiteTemplate— templates assigned to resourcesEvolutionCMS\Models\SiteTmplvar— TV definitionsEvolutionCMS\Models\SiteTmplvarContentvalue— TV values stored per resourceEvolutionCMS\Models\ClosureTable— tree closure table used by ancestor/descendant queries
Code Element Models
SiteHtmlsnippet— chunksSiteSnippet— snippetsSitePlugin— pluginsSitePluginEvent— plugin to event bindingsSiteModule— modulesCategory— manager-side category grouping
Users, Groups, and Access Models
User,UserAttribute,UserSetting— web users and their profile/settings dataMemberGroup,MembergroupName,MembergroupAccess— frontend group accessUserRole,RolePermissions,Permissions,PermissionsGroups— manager roles and permissionsDocumentGroup,DocumentgroupName— resource access grouping
Configuration and Operational Models
SystemSetting— global system settings stored by key/valueEventLogandManagerLog— operational logsActiveUser,ActiveUserSession,ActiveUserLock— live edit/session stateSystemCliTaskand related models — CLI/system task runtime
Common SiteContent Relations
use EvolutionCMS\Models\SiteContent;
$doc = SiteContent::with(['tpl', 'templateValues'])->findOrFail(7);
$template = $doc->tpl;
$children = $doc->children;
$tvValues = $doc->templateValues;
Template and TV Relations
use EvolutionCMS\Models\SiteTemplate;
use EvolutionCMS\Models\SiteTmplvar;
$template = SiteTemplate::with('tvs')->findOrFail(1);
$tv = SiteTmplvar::with('templates')
->where('name', 'price')
->first();
User and Role Relations
use EvolutionCMS\Models\User;
use EvolutionCMS\Models\UserRole;
$user = User::with(['attributes', 'memberGroups', 'settings'])->find(1);
$role = UserRole::with('tvs')->find(1);
What to Use in Practice
- Use
SiteContentwhen the job is tree, resource, or TV driven. - Use
SiteTemplateandSiteTmplvarwhen you build editor-facing content models. - Use
SiteSnippet,SitePlugin, andSiteModulewhen you inspect or generate classic Evolution elements. - Use
User,UserRole, and permission/group models for auth and access logic. - Use
SystemSettingwhen you need stored global settings rather than runtime environment values.
For tree queries and TV filtering examples, continue with Resources. For helper methods, routes, and request handling, see API Overview.
Previous
Events and Modifiers
Use system events and built-in modifiers for targeted customization without rewriting larger parts of the project.
Next
PhpStorm
Configure PhpStorm for Evolution CMS Blade directives, package code, and mixed classic-plus-modern projects.