php - Zend formulario bootstrap annotation datepicker "Objeto proporcionado a Escape helper, pero las banderas no permiten la recursiĆ³n"
twitter-bootstrap annotations (4)
No parece que el error haya provenido de tu código o tal vez el punto es que tienes que hacer si se trata de una acción de edición no solo vincular sino agregar:
$form->bind($document);
$form->get(''datenais'')->setValue($document->getDatenais()->format(''Y-m-d''));
No conozco el camino limpio, pero resolverá tu problema. Si encuentras otra forma, me complacerá ver tu fragmento de código.
Estoy usando Zend framework con Bootstrap y el adaptador ReverseForm, y tengo un problema interesante: cuando uso Bootstrap Datepicker en Zend Form, tengo la siguiente excepción:
Object provided to Escape helper, but flags do not allow recursion
Hay mi código de formfield:
use /Doctrine/ODM/MongoDB/Mapping/Annotations as ODM;
use /Zend/Form/Annotation as ZFA;
...
/**
* @var /DateTime
*
* @ODM/Date
*
* @ZFA/Type("ReverseForm/Element/BootstrapDatepicker")
* @ZFA/Attributes({"type":"text"})
* @ZFA/Options({
* "label":"Date",
* "extended": {
* "help": {"content": ""},
* }
* })
*
*/
private $date;
y ahí está mi configuración de forma inversa:
''ReverseForm/Element/BootstrapDatepicker'' => array(
''js'' => array(
''/vendor/datepicker/js/bootstrap-datepicker.js''
),
''css'' => array(
''/vendor/datepicker/css/datepicker.css''
),
''template'' => ''input.phtml'',
''inlineJs'' => "$(''#%1/$s'').datepicker(%2/$s);",
''inlineJsConfig'' => array(
''format'' => ''dd.mm.yyyy'',
''weekstart'' => new /Zend/Json/Expr(1),
)
),
Donde tengo un error?
Tuve el mismo problema. Cambiar el tipo de entrada de text
a date
debería solucionar su problema. ( https://github.com/zendframework/zf2/issues/3724 )
Es un problema similar al que obtienes si no agregas el campo tipo al formulario Zend:
''type'' => ''Zend/Form/Element/Time'',
El elemento completo es como tal ::
$this->add(array(
''name'' => ''officialDrawTime'',
''type'' => ''Zend/Form/Element/Time'',
''attributes'' => array(
''required'' => ''required'',
''type'' => ''time'',
''class'' => ''form-control input-large'',
''placeholder'' => ''e.g 19:30 or 07:30 (24 hour clock)'',
''pattern'' => ''^[0-9]{2}:[0-9]{2}$''
),
''options'' => array(
''label'' => ''Official draw time'',
''instructions'' => ''The official draw time...)''
),
));
Esto funciona para mí
El formato de conversión de valor a la fecha resolverá el problema.
En tu controlador: escribe:
$users[''usrBirthday'']=$user->getBirthday()->format(''d-m-Y'');
$form->setData($users);
$form->bind($user);