cObject
Aus CavoxCms Wiki
Wird von jeder Model-Klasse geerbt.
Inhaltsverzeichnis |
Statische Methoden
Vorkommende Parameter:
- model: Gibt den Modell-Namen als String an (in UpperCamelCase)
findAll
static function findAll($model, cExpression $where = null, cOrder $orderby = null, cPaging $pageNumbers = null, $eager=null)
- orderby: Kann auch ein string sein
- pageNumber: Kann auch ein string sein
- eager: (array oder kommaseparierter String) Gibt an, welche Objekte (von hasOne) vorgeladen werden sollen (Eager Load), sodass sie nicht per Lazy Load geladen werden müssen (weniger SQL-Queries).
Liest ein Array von Objekten aus der Datenbank.
get
static function get($model, $id)
- id: Kann eine Zahl sein oder ein cParameters-Objekt (es wird der Key "id" daraus ausgelesen).
Liest ein einzelnes Objekt anhand der ID aus.
cObject::get("mymodel", $params->get("id", "number"));
find
static function find($model, cExpression $where)
Liest ein einzelnes Objekt anhand eines Ausdruckes aus.
load
static function load($model, cParameters &$params, $arg = null)
Diese Methode erstellt ein Model-Objekt, erstellt ein cResult und versucht das übergebene Formular (Command) mit der validate-Methode zu überprüfen. Beispiel: cController#Speichern
Falls die Methode validate mit einem speziellen Argument aufgerufen werden soll (z.B. um verschiedene validate-Varianten zu unterstützen), kann ein dritter, optionaler Parameter übergeben werden.
Variabeln
result
Wurde das Objekt mit #load geladen, enthält diese Variabel das cResult, ansonsten ist sie null.
Methoden
save
Speichert das Objekt. Wurde das Model mit der Methode cObject::load erstellt, wird das cResult gespeichert, ansonsten werden die enthaltenen Daten in die Datenbank geschrieben.
Positionen
Modelle können mit einer Position versehen werden, damit die einzelnen Objekte verschoben werden können. Dazu können zwei Buttons erstellt weden mit zwei Befehlen (moveUp und moveDown). Desweiteren muss beim Erstellen des Objektes die neue Position ausgerechnet und beim Löschen die Positionen nachgeschoben werden.
Verwenden Sie dazu folgende Methoden. Dabei kann immer eine Where-Klausel (cExpression) angegeben werden, wenn mehrere Ebenen von Positionen möglich sind.
moveDown
Verschiebt das Objekt eine Position nach oben (links).
function cmd_moveUp(&$params){
if($obj = cObject::get("model", $params))
$obj->moveUp();
return true;
}
moveDown
Verschiebt das Objekt eine Position nach unten (rechts).
function cmd_down(&$params){
if($obj= cObject::get("model", $params))
$obj->moveDown();
return true;
}
updatePosition
Wird die Methode updatePosition beim Einfügen aufgerufen, wird die neue Position gesetzt. Wird sie bei einem vorhanden Objekt aufgerufen, wird die Position gelöscht.
class cGallery_Picture extends cObject{
function validate(){
...
if($this->inserting())
$this->updatePosition();
}
function delete(){
$this->updatePosition();
cObject::delete();
}
}
