Olá.
Tenho um atributo do tipo ‘Date’ que pode ser nulo (DataDemissao). O problema é que quando ele não é preenchido, a minha View exibe a frase ‘Não Configurado’. Segue a baixo a estrutura da minha View.
<h1>Exibir Funcionario</h1>
<?php $this->widget(‘zii.widgets.CDetailView’, array(
'data'=>$model,
'attributes'=>array(
'Nome',
'Registro',
'DataAdmissao',
'DataDemissao',
'Ativo',
array('name'=>'UsuarioId','value'=>$model->usuario->Login,'type'=>'text'),
),
)); ?>
Gostaria de exibir alguma mensagem do tipo "Não foi demitido". O que devo fazer ??
Desde já, grato
Clayton23
(Cleintonto)
June 28, 2012, 5:18pm
2
nullDisplay string the text to be displayed when an attribute value is null.
Você pode verificar os métodos do Detail View:
http://www.yiiframework.com/doc/api/1.1/CDetailView
Olá Raphael!
Siga a dica do Clayton.
Porém, alerto que essa prática não será a indicada caso exista outros atributos com valor "null", já que o contexto é outro.
Sempre q utilizar um widget procure informações sobre o msm no site do Yii, assim vc poderá utilizar o componente da melhor forma.
http://www.yiiframework.com/doc/api/1.1/CDetailView#nullDisplay-detail
Abraço. Flw!
raphael.pradoo:
Olá.
Tenho um atributo do tipo ‘Date’ que pode ser nulo (DataDemissao). O problema é que quando ele não é preenchido, a minha View exibe a frase ‘Não Configurado’. Segue a baixo a estrutura da minha View.
<h1>Exibir Funcionario</h1>
<?php $this->widget(‘zii.widgets.CDetailView’, array(
'data'=>$model,
'attributes'=>array(
'Nome',
'Registro',
'DataAdmissao',
'DataDemissao',
'Ativo',
array('name'=>'UsuarioId','value'=>$model->usuario->Login,'type'=>'text'),
),
)); ?>
Gostaria de exibir alguma mensagem do tipo "Não foi demitido". O que devo fazer ??
Desde já, grato
Amigo você pode fazer assim:
Criar a function afterFind() no seu model
function afterFind() {
if ($this->DataDemissao == '0000-00-00' || $this->DataDemissao == '') {
$this->DataDemissao = "Não foi demitido";
} else {
$this->DataDemissao = Yii::app()->dateFormatter->formatDateTime(
CDateTimeParser::parse($this->DataDemissao, 'yyyy-MM-dd'), 'medium', null);
}
return true;
}
Ou colocar na própria CDetailView
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'Nome',
'Registro',
'DataAdmissao',
'DataDemissao',
'Ativo',
array('name'=>'UsuarioId','value'=>$model->usuario->Login,'type'=>'text'),
),
'nullDisplay' => '<span class="null">Não foi demitido</span>',
)); ?>
Porém se você fizer desse segundo método, todos os campos NULL irão ficar com a mensagem [b]Não foi demitido.
[/b]Espero ter ajudado…
Obrigado à todos pela ajuda. Utilizei a solução do Adrian Lucas e foi resolvido.