Adicionando um filtro customizado no admin generator (symfony 1.2)
Tenho uma tabela (1-N) que possui diversos telefones relacionados.
config/schema.yml:
imovel:
id:
(…)
created_at:
imovel_telefone:
id:
imovel_id:
telefone: varchar(20)
created_at:
No admin generator, será necessário criar um filtro customizado, porque o telefone não faz parte da tabela imovel. Para isso, vamos alterar o arquivo lib/filter/ImovelFormFilter.class.php
class ImovelFormFilter extends BaseImovelFormFilter
{
public function configure() {
$this->widgetSchema[‘telefone’] = new sfWidgetFormInput();
$this->validatorSchema[‘telefone’] = new sfValidatorPass(array(‘required’ => false));
}
public function getFields() {
return array_merge(array(‘telefone’ => ‘Telefone’), parent::getFields());
}
protected function addTelefoneColumnCriteria(Criteria $criteria, $field, $values) {
$criteria->addJoin(ImovelPeer::ID, TelefoneImovelPeer::IMOVEL_ID, Criteria::LEFT_JOIN);
$criteria->add(TelefoneImovelPeer::TELEFONE, $values);
}
}
Para finalizar, altere o generator.yml do seu backend e adicione o field telefone.
filter:
fields:
display: [ telefone, campo1, campo2 ]

