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 tree
  • EvolutionCMS\Models\SiteTemplate — templates assigned to resources
  • EvolutionCMS\Models\SiteTmplvar — TV definitions
  • EvolutionCMS\Models\SiteTmplvarContentvalue — TV values stored per resource
  • EvolutionCMS\Models\ClosureTable — tree closure table used by ancestor/descendant queries

Code Element Models

  • SiteHtmlsnippet — chunks
  • SiteSnippet — snippets
  • SitePlugin — plugins
  • SitePluginEvent — plugin to event bindings
  • SiteModule — modules
  • Category — manager-side category grouping

Users, Groups, and Access Models

  • User, UserAttribute, UserSetting — web users and their profile/settings data
  • MemberGroup, MembergroupName, MembergroupAccess — frontend group access
  • UserRole, RolePermissions, Permissions, PermissionsGroups — manager roles and permissions
  • DocumentGroup, DocumentgroupName — resource access grouping

Configuration and Operational Models

  • SystemSetting — global system settings stored by key/value
  • EventLog and ManagerLog — operational logs
  • ActiveUser, ActiveUserSession, ActiveUserLock — live edit/session state
  • SystemCliTask and 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 SiteContent when the job is tree, resource, or TV driven.
  • Use SiteTemplate and SiteTmplvar when you build editor-facing content models.
  • Use SiteSnippet, SitePlugin, and SiteModule when you inspect or generate classic Evolution elements.
  • Use User, UserRole, and permission/group models for auth and access logic.
  • Use SystemSetting when 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.