Olá!
Vou mostrar aqui uma maneira de nós criarmos uma coluna no banco que servirá como várias colunas.
schema.yml
propel:
usuario:
_attribute: { phpName: Usuario }
id:
nome: varchar(50)
sobrenome: varchar(50)
atributos: longvarchar
Então, se alguma hora precisarmos criar algum campo a mais nesta tabela, podemos utilizar o campo atributos para isso.
Suponhamos que preciso criar um campo ESTADO.
lib/model/Usuario.php
public function getEstado() {
$yml_loaded = sfYaml::load($this->getAtributos());
if (!(isset($yml_loaded[‘estado’]))) {
$yml_loaded[‘estado’] = ‘’;
}
return $yml_loaded["estado"];
}
public function setEstado($valor) {
$yml_loaded = sfYaml::load($this->getAtributos());
$yml_loaded[‘estado’] = $valor;
$yml = sfYaml::dump($yml_loaded);
$this->setAtributos($yml);
}
Desse jeito, teremos o valor do estado armazenado na coluna atributos do banco.
Na minha opinião é mais fácil criar esses métodos do que ficar alterando colunas do banco, porém o tipo de campo será sempre string.

Post a Comment