! Предупреждение, возможно, плохой английский!
для т.е. "локализованных" значений в формах я делаю что-то вроде этого ..
после передачи формы в сетку $grid->setForm($myform);
, но перед вызовом $grid->deploy();
я получаю элемент формы и устанавливаю значение вручную, как показано ниже
$Form=$grid->getForm(1);
$dateVal = $Form->getElement('birthday')->getValue();
if(Zend_Date::isDate($dateVal,'yyyy-MM-dd', 'en'))
$dateObject = new Zend_Date($dateVal);
$Form->getElement('birthday')
->setValue($dateObject->toString('dd.MM.yyyy'))
->setValidators(array(new Zend_Validate_Date('dd.MM.yyyy')))
;
, затем регистрирую триггер события zfdatagrid "crud.before_update "
$grid->listenEvent('crud.before_update', array($this, '_updateCallback')
, который вызывает функцию из этого контроллера _updateCallback () с чем-то нестандартным, подобным этому
public function _updateCallback(Bvb_Grid_Event $e)
{
$n = $e->getParam('newValues');
list($d,$m,$y) = explode('.', $n['birthday']);
$sqldate = $y.'-'.$m.'-'.$d;
$n['birthday'] = $sqldate;
$e->setParam('newValues', $n);
}
, или просто использует Zend Date, как раньше, для рефакторинга даты, чтобы гарантировать, чтозначение даты, которое мы хотим сохранить, находится в формате SQL в формате SQL.
надеюсь, это поможет. z.