Páginas

16 de dezembro de 2009

Estranho Timestampable Behaviour..

Quando no schema.yml definimos o Timestampable Behaviour (ver este post), os campos created_at e updated_at aparecem no formulário desse objecto.
Como não queremos ter que preencher esses campos manualmente cada vez que estamos a editar ou adicionar algo, temos que fazer o unset dos mesmos na classe do formulário desse objecto.

Exemplo:
Em: lib/form/doctrine/CategoryFormClass.php
public function configure() {
unset($this->widgetSchema['created_at']);
unset($this->validatorSchema['created_at']);

unset($this->widgetSchema['updated_at']);
unset($this->validatorSchema['updated_at']);
}
É necessário fazer essa alteração em todas as classes de formulários...

Alternativamente pode-se alterar directamente o ficheiro lib/form/doctrine/BaseFormDoctrine.class.php que esses campos não apareçam em nenhum formulário.
public function setup(){
unset($this->widgetSchema['created_at']); 
unset($this->validatorSchema['created_at']);

unset($this->widgetSchema['updated_at']); 
unset($this->validatorSchema['updated_at']); 
}

EDIT:
Para simplificar também se pode fazer o seguinte:
...
unset($this['created_at']);
unset($this['updated_at']);
...

Nenhum comentário:

Postar um comentário