Kdyby\doctrine – anotace – default boolean

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Odoaker
Člen | 11
+
0
-

Hoj,
nějakou dobu zápasím s doctrine a vyskytl se mi problém, kterej se mi nedaří vyřešit. Nechce mi nastavit výchozí hodnotu pro bool.

Zkusil sem podle dokumentace doctrine-annotations

/**
* @ORM\Column(type="boolean", options={"default":"false"})
*/
protected $deleted;

I možnosti options={„default“=„false“}, options={„default“:„0“}, options={‚default‘:0}, default=false, … ale moc sem nepochodil. Netuší někdo jak na to?

greeny
Člen | 405
+
0
-

Nebude třeba fungovat tohle?

/**
* @ORM\Column(type="boolean")
*/
protected $deleted = FALSE;
Odoaker
Člen | 11
+
0
-

Nende..

Překvapivě ani prasáckej workaround

/**
* @ORM\Column(type="boolean", columnDefinition="TINYINT(1) DEFAULT 0")
*/
protected $deleted;

PS: když nastanou takový situace, kdy se nedohodnu s doctrinou na sytaxi, nechám si vygenerovat tabulky a pak si je trochu změním v databazí ručně, je to validní postup? Jelikož nevím, jak její střeva fungujou, tak nedokážu posoudit, jestli nebude pak někdy třeba hlásit chyby, nebo špatně pracovat.

Třeba ještě column lastLogin bych rád TIMESTAMP s default CURRENT_TIMESTAMP, ale to je asi marný nastavovat přes tu anotaci.

Editoval Odoaker (26. 2. 2015 23:57)

Filip Klimeš
Nette Blogger | 156
+
0
-

Mělo by fungovat tohle, zdroj

/**
* @ORM\Column(type="boolean", options={"default":"0"})
*/
protected $deleted;

Promazal sis po změně anotací cache?

Editoval Filip Klimeš (27. 2. 2015 8:46)

enumag
Člen | 2118
+
0
-

Boolean se v anotacích zapisují bez uvozovek:

/**
 * @ORM\Column(type="boolean", options={"default":false})
 */

Editoval enumag (27. 2. 2015 8:44)

Filip Procházka
Moderator | 4668
+
0
-

úplně běžně používám

	/**
	 * @ORM\Column(type="boolean", nullable=FALSE, options={"default":"0"})
	 * @var bool
	 */
	protected $mandatory = FALSE;
Odoaker
Člen | 11
+
+2
-

Jojo, tak problém byl v cache.

Nakonec sem objevil ještě ve faq doctriny, že se ty default hodnoty maj řešit aplikačně (což se mi moc nezamlouvá, ale co už…) a ne přes databázi.

FAQ – 3.2.2.

Díkes :)