A idéia seria a seguinte:
($variavel == 1) ? "ativo" : "inativo";
Respeitando MVC, não deveremos colocar esta lógica na view, de forma alguma.
A view tão somente deve exibir os dados setados a ela.
Para exibir esses dados devem ser modificados no controller. Sendo $variavel já enviada com "ativo" ou "inativo".
Em CAKEBAKER ele fala sobre a mesma idéia só que trabalhando do model para o banco.
Busquei tratar o valor de $variavel que seria impresso na view no controlador visto que ele é responsável por enviar os dados a mesma. Então que sejam enviados os dados de forma correta.
Já na hora de tratar com banco, a responsabilidade é do modelo.
Parei para pensar um pouco sobre como realizar isso com próprio sql.
Numa leitura superficial encontrei um artigo que falava sobre o uso CASE em SELECTS.
Vejam se a idéia não é parecida com o exemplo dado neste blog?
select
CASE month when "01" then "January"
when "02" then "February"
when "03" then "March"
END
from calendar where year = "2005" order by month
Fonte principal : http://dev.mysql.com/doc/refman/4.1/pt/control-flow-functions.html
Um comentário:
Olá Angelica!
No site do cake tem um pdf interessante para sua questão:
http://cakephp.org/files/Slides/OCPHP.pdf
La tem uma imagem com o bolo bem feito e o mal feito. No cake 1.1 a visão era um MVC com uma camada de controle maior. No Cake 1.2 a intenção é deixar o modelo maior.
Para este seu problema vc pode usar um callback no próprio modelo afterFind e tratar sua busca.
Caso vc tenha interesse de usar em vários modelos vc pode fazer um behavior.
Um behavior que tem uma lógica parecida com o que vc está querendo é o soft delete, vc pode encontra-lo aqui:
http://bakery.cakephp.org/articles/view/soft-delete-behavior
Abraços!
Daniel
Postar um comentário