Kdyby\doctrine – anotace – default boolean
- Odoaker
- Člen | 11
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?
- Odoaker
- Člen | 11
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
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)
- Filip Procházka
- Moderator | 4668
úplně běžně používám
/**
* @ORM\Column(type="boolean", nullable=FALSE, options={"default":"0"})
* @var bool
*/
protected $mandatory = FALSE;
- Odoaker
- Člen | 11
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.
Díkes :)