Zum Inhalt springen

boolean / Tinyint(1) erzeugt keine Ausgabe bei false

Erstellt am 22. Oktober 2013 · 2 Antworten · letzte Antwort am 21. Januar 2014

Tags: Fluid, Frage

harald1972 ·

Seltsame Sache,

bei folgendem Szenario erhalte ich eine merkwürdige Ausgabe.

Ich habe ein Objekt mit einer Boolschen Variable.
Mit dem ExtensionBuilder angelegt, erhalte ich (vereinfacht) diese Klasse

class Foo extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity{
/**
 * @var boolean
 */
protected $bar
...
/**
 * @return boolean $bar
 */
public function getBar() {
	return $this->bar;
}
}

MySql verwendet dafür einen Tinyint(1).
Ich kann damit umgehen, wie mit einer Boolschen Variable, oder mit jedem anderen Integer, wenn ich ihn wahr/falsch prüfe.
Allerdings erzeugt mir die reine Ausgabe im fluid-Template

{foo.bar}

eine 1, wenn es wahr ist (und in der DB eben diese 1 steht)
ABER !!! ich erhalte KEINE Ausgabe, wenn es falsch ist (in der DB steht 0).

o.O

Kann mir das mal jemand erklären?

kainobi ·

Ich glaube das liegt daran, wie PHP damit umgeht, wenn man Booleans als String ausgibt:

print true;
-> Ergebnis: 1

print false;
-> Ergebnis:

harald1972 ·

Du sagst,

wenn man Booleans als String ausgibt

Kann ich den Boolean als Boolean ausgeben?
Und wenn ja, dann wie? Außer mit if/else-Konstrukt drumrum.