hallo,
ich bastle noch immer an meinem terminkalender - danke für eure hilfe bisher. ich stehe von einem neuen problem. und zwar habe ich mir einen terminkalender gebastelt wo ich einem termin mehrere datum zuweisen kann. dazu habe ich eine m:n relation angelegt. soweit passt alles. nun möchte ich aber auf der liste nicht neben den genauen daten auch die liste der monate ausgeben (für das suchformular). nun habe ich mir gedacht, dass ich im model einfach eine neue variable "monat" anlege. mein problem ist, dass ich nicht weiß, wie ich auf die daten von "datum-von" zugreifen kann.
ich weiß nicht, ob das verständlich war. also ich möchte die daten aus der tabellen-spalte "datum-von" in einer eigenen variable mit der bezeichnung "monat" an fluid übergeben. vorher muss ich aber die daten für die variable "monat" umwandeln (es soll ja nicht das ganze datum, sondern nur das monat übergeben werden). zugleich brauche ich aber die daten von "datum-von" auch, also diese variable kann ich da nicht nehmen. geht das im model oder muss ich dazu eine eigene datenbankabfrage machen?
danke für eure hinweise wie ich das am besten anstelle.
lg
npre
du kannst im Model eine getMonat() Methode definieren, in der du den Wert von "datum-von" ( $this->DatumVon ) beliebig verarbeiten kannst (also auf den Monat reduzieren). Im Template kannst du dann mit {termin.monat} auf diesen Wert zugreifen.
Ich glaube dazu musst du im Model noch das Attribut definieren. Eventuell auch im TCA/DB. Da bin ich mir aber grad nicht sicher. Eventuell reicht es, wenn du die Methode und das Attribut definierst 😉
Alternativ würde sich hier aber auch der Date Viewhelper anbieten, vermutlich sogar besser, schneller und einfacher 😉
Gruß
hallo,
danke für deine antwort. ich habe im model
/**
* Returns the monat
*
* @return string $monat
*/
public function getMonat() {
return $this->datumvon;
}
das gibt mir auch um template dann mit termin.monat und <f:format.date format="d.M">{termin.monat}</f:format.date> das datum aus. ABER wenn ich das ganze im model vorher schon nur das monat alleine übergeben möchte, kommt gar nichts an:
/**
* Returns the monat
*
* @return string $monat
*/
public function getMonat() {
return date('m', $this->datumvon);
}
das datum ist in der datenbank als timestamp drin und im model sieht es so aus:
/**
* Returns the datumvon
*
* @return \DateTime $datumvon
*/
public function getDatumvon() {
return $this->datumvon;
}
/**
* Sets the datumvon
*
* @param \DateTime $datumvon
* @return void
*/
public function setDatumvon(\DateTime $datumvon) {
$this->datumvon = $datumvon;
}
wie kann ich also in "monat" im model schon das datum vom timestamp in einen string (nämlich den monatsnamen) umwandeln. ich brauche das, weil ich "monat" im fluid template für eine formular (select feld) benötige und ich das <f:format.date format="M">{termin.monat}</f:format.date> an das <form> anscheinend nicht übergeben kann.
lg
npre
Das sollte eigentlich funktionieren. Schau dir mal einen var_dump an + eventuell f:debug und guck mal, was er dir da ausspuckt ?
danke. hab es mittlerweile anders gelöst. habe einfach eine normale abfrage gemacht
$Query = $this->createquery();
$Query->getQuerySettings()->setReturnRawQueryResult(TRUE);
$Query->getQuerySettings()->setRespectStoragePage(FALSE);
$Query->statement('SELECT *
FROM tx_mwterminkalender_domain_model_datumoeffnungszeiten');
$arrayMonate = $Query->execute();