Models: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Relationen / Datensätze aus Fremndtabellen)
(Was sind Models)
Zeile 7: Zeile 7:
  
 
= Was sind Models =
 
= Was sind Models =
Ein Model ist die Objekt-Repräsentation einer Datebank-Tabelle, genauer gesagt einer Entität daraus.
+
Ein '''''Model''''' ist die Objekt-Repräsentation einer Datebank-Tabelle, genauer gesagt einer Entität daraus.
 
Models ersetzen weitgehend SQL-Statements und wrappen diese in bequeme Methoden. Natürlich bieten Models noch viele weitere Vorteile.
 
Models ersetzen weitgehend SQL-Statements und wrappen diese in bequeme Methoden. Natürlich bieten Models noch viele weitere Vorteile.
  
Mehrere Models werden durch eine ''Collection'' referenziert, dies entspricht einer SQL-Abfrage die mehr als eine Ergebniszeile liefert.
+
Mehrere Models werden durch eine '''''Collection''''' referenziert, dies entspricht einer SQL-Abfrage die mehr als eine Ergebniszeile liefert.
  
Contao3 bietet - wenn dem Model eine DCA-Struktur zugeordnet ist - etwas Magic um abhängige Datensätze zu laden. Beispiel: Der Author (UserModel) eines Artikels (ArticleModel).  
+
Contao3 bietet - wenn dem Model eine DCA-Struktur zugeordnet ist - etwas Magic um abhängige Datensätze zu laden.  
 +
Beispiel: Der Author (''UserModel'') eines Artikels (''ArticleModel'').
  
 
= Verwendung =
 
= Verwendung =

Version vom 16. Februar 2013, 17:28 Uhr

MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.

betrifft
Contao Version 3.0.0


Models von Contao3 nutzen und verstehen

Was sind Models

Ein Model ist die Objekt-Repräsentation einer Datebank-Tabelle, genauer gesagt einer Entität daraus. Models ersetzen weitgehend SQL-Statements und wrappen diese in bequeme Methoden. Natürlich bieten Models noch viele weitere Vorteile.

Mehrere Models werden durch eine Collection referenziert, dies entspricht einer SQL-Abfrage die mehr als eine Ergebniszeile liefert.

Contao3 bietet - wenn dem Model eine DCA-Struktur zugeordnet ist - etwas Magic um abhängige Datensätze zu laden. Beispiel: Der Author (UserModel) eines Artikels (ArticleModel).

Verwendung

TODO write something cool


Relationen / Datensätze aus Fremndtabellen

Für die Funktion der relations-Magic muss dem Model ein DCA-Definition zugeordnet sein. Diese wird bei der Definition der Model-Klasse angegeben:

class ArticleModel extends \Model
{
	/**
	 * Table name
	 * @var string
	 */
	protected static $strTable = 'tl_article';
...

In der DCA-Struktur wird die Relation definiert

Angenommen wir haben ein Model das einen Datensatz aus tl_article referenziert.

$GLOBALS['TL_DCA']['tl_article'] = array
(
...
// Fields
	'fields' => array
	(
		'pid' => array
		(
			'foreignKey'              => 'tl_page.title',
			'sql'                     => "int(10) unsigned NOT NULL default '0'",
			'relation'                => array('type'=>'belongsTo', 'load'=>'lazy')
		),
		'author' => array
		(
			'label'                   => &$GLOBALS['TL_LANG']['tl_article']['author'],
			'default'                 => $this->User->id,
			'exclude'                 => true,
			'inputType'               => 'select',
			'foreignKey'              => 'tl_user.name',
			'eval'                    => array('doNotCopy'=>true, 'mandatory'=>true, 'chosen'=>true, 'includeBlankOption'=>true, 'tl_class'=>'w50'),
			'sql'                     => "int(10) unsigned NOT NULL default '0'",
			'relation'                => array('type'=>'hasOne', 'load'=>'eager')
		),
$GLOBALS['TL_MODELS']['tl_article'] = 'Contao\ArticleModel';

Weiterführende Informationen

Ansichten
Meine Werkzeuge

Contao Community Documentation

noch 4 mal das Wort Abstraktion und ich beginne Zigaretten zu rauchen...

Martin Mildner
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge