Extbase - Timestamp nutzen: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 1: | Zeile 1: | ||
| + | == Beispiele == | ||
| + | === Beispiel === | ||
| + | http://stackoverflow.com/questions/13733546/how-to-use-standard-fields-like-crdate-and-cruser-id-with-typo3-and-extbase (2015-06) | ||
| + | |||
| + | First, the table fields are named as crdate, and cruser so getters should be named getCrdate and get getCruser | ||
| + | |||
| + | Next in your model you need to add a field and a getter: | ||
| + | <syntaxhighlight lang="php"> | ||
| + | /** @var int */ | ||
| + | protected $crdate; | ||
| + | |||
| + | /** | ||
| + | * Returns the crdate | ||
| + | * | ||
| + | * @return int | ||
| + | */ | ||
| + | public function getCrdate() { | ||
| + | return $this->crdate; | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | (do the same with cruser field) | ||
| + | |||
| + | And finally in you setup.txt most probably you'll need to add a mappings for these fields: | ||
| + | <syntaxhighlight lang="typoscript"> | ||
| + | config.tx_extbase.persistence.classes { | ||
| + | Tx_Someext_Domain_Model_Somemodel { | ||
| + | mapping { | ||
| + | columns.crdate.mapOnProperty = crdate | ||
| + | columns.cruser.mapOnProperty = cruser | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | === Beispiel === | ||
| + | |||
| + | Dieses Beispiel funktioniert, aber es erscheint mir nicht sinnvoll das $TCA zu überschreiben | ||
| + | |||
<syntaxhighlight lang="typoscript"> | <syntaxhighlight lang="typoscript"> | ||
$TCA['tx_myext_domain_model_mymodel']['columns']['crdate'] = Array ( | $TCA['tx_myext_domain_model_mymodel']['columns']['crdate'] = Array ( | ||
Version vom 26. Juni 2015, 17:19 Uhr
Beispiele
Beispiel
First, the table fields are named as crdate, and cruser so getters should be named getCrdate and get getCruser
Next in your model you need to add a field and a getter:
/** @var int */
protected $crdate;
/**
* Returns the crdate
*
* @return int
*/
public function getCrdate() {
return $this->crdate;
}
(do the same with cruser field)
And finally in you setup.txt most probably you'll need to add a mappings for these fields:
config.tx_extbase.persistence.classes {
Tx_Someext_Domain_Model_Somemodel {
mapping {
columns.crdate.mapOnProperty = crdate
columns.cruser.mapOnProperty = cruser
}
}
}
Beispiel
Dieses Beispiel funktioniert, aber es erscheint mir nicht sinnvoll das $TCA zu überschreiben
$TCA['tx_myext_domain_model_mymodel']['columns']['crdate'] = Array (
'exclude' => 1,
'label' => 'Creation date',
'config' => Array (
'type' => 'none',
'format' => 'date',
'eval' => 'date',
));
);
das model erweitern um ein DateTime property und entsprechende getter und setter methoden.
/**
* crdate
*
* @var string
*/
protected $crdate;
/**
* Returns the crdate
*
* @return string $crdate
*/
public function getCrdate() {
return $this->crdate;
}
/**
* Sets the crdate
*
* @param string $crdate
* @return void
*/
public function setCrdate($crdate) {
$this->crdate = $crdate;
}
ausschlaggebend ist zuerst das tca. was dort nicht enthalten ist, wird auch nicht in das model gemappt.
So lässt sich das Datum in Fluid noch ordentlich formatiert ausgeben:
<f:format.date format="d.m.Y - H:i">{firma.tstamp}</f:format.date> Uhr
Vorsicht - scheinbar nutzt der View Helper immer gmt. D.h. die Uhr geht 1h falsch bei uns.