API: Models and Tables¶
Each table in the CollectiveAccess database has a corresponding model class. Model classes provide functionality that eases reading, editing and writing data to its table, including:
Insert, update and delete functions (you don’t need to, and should not, write SQL for these operations)
Navigating of hierarchies for tables supporting hierarchical tables
Support for extended data types, including date ranges, georeferences, uploaded media, timecode and more
Support for user defined, repeating fields
Support for retrieving data from rows in related tables (many-one and many-to-many)
Support for fields restricted to lists defined in the list/vocabulary manager
Generation of HTML form element widgets for specific fields
Model Inheritance¶
All models inherit from BaseModel (located in app/lib/core/BaseModel.php), which provides a baseline of functionality. Some models may inherit from subclasses of BaseModel that layer on additional functionality. These include:
BaseModelWithAttributes
LabelableBaseModelWithAttributes
BundlableLabelableBaseModelWithAttributes
BaseRelationshipModel
More to Come