megadets
(Megadets)
February 1, 2016, 12:53pm
1
Consegui personalizar o index da minha aplicação, mas não consigo personalizar a view, preciso acertar os nomes da colunas em vermelho, colocar acentuação entre outras coisas e dos marcados em azul trocar os valores booleanos por sim ou não. A questão é como eu consigo personalizar isso. segue meu código.
<h1>Lição Aprendida</h1>
<h2><?php if($model->status ==1){
echo "Você não pode atualizar esta lição aprendida no momento, pois ela encontra-se em avaliação";
} ?></h2>
<?php
$avaliacao_dados= Avaliacao::model()->findByAttributes(array('id_la'=>$model->id));
$this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
//'id',
'nome',
//'id_pai',
'aprovacao',
'avaliada',
//'status',
'influencia',
'impacto',
'fase_projeto',
'versao',
'area',
//'id_setor',
//'id_usuario',
'data',
//'file_name',
//'file_type',
//'anexo',
'file_size',
'descricao',
),
));?>
<?php if($model->status == 2){
echo "Avaliação";
$nome_avaliador= User::model()->findByAttributes(array('id'=>$avaliacao_dados->id_usuario));
$avaliacao_dados->id_usuario=$nome_avaliador->name;
$this->widget('zii.widgets.CDetailView', array(
'data'=>$avaliacao_dados,
'attributes'=>array(
'data',
'nota',
'id_la',
'id_usuario',
'aprovacao',
'comentarios',
),
));
}
$this->widget('zii.widgets.CDetailView', [
'data' => $model,
'attributes' => [
//'id',
'nome',
//'id_pai',
[
'name' => 'aprovacao',
'label' => 'Foi Aprovado?',
'value' => $model->aprovacao == 1 ? 'Sim' : 'Não',
],
'avaliada',
//'status',
'influencia',
'impacto',
'fase_projeto',
'versao',
'area',
[
'name' => 'id_setor',
'label' => 'Setor',
'value' => $model->id_setor
],
//'id_usuario',
'data:date', // tipo do campo é date
'data:datetime', // tipo do campo é datetime
//Outra forma
[
'name' => 'data',
'value' => date("d-m-Y", strtotime($model->data))
],
//'file_name',
//'file_type',
'anexo:image', // tipo imagem
'file_size',
[
'name' => 'descricao',
'value' => nl2br($model->descricao)
],
],
]);
megadets
(Megadets)
February 1, 2016, 3:48pm
3
$this->widget('zii.widgets.CDetailView', [
'data' => $model,
'attributes' => [
//'id',
'nome',
//'id_pai',
[
'name' => 'aprovacao',
'label' => 'Foi Aprovado?',
'value' => $model->aprovacao == 1 ? 'Sim' : 'Não',
],
'avaliada',
//'status',
'influencia',
'impacto',
'fase_projeto',
'versao',
'area',
[
'name' => 'id_setor',
'label' => 'Setor',
'value' => $model->id_setor
],
//'id_usuario',
'data:date', // tipo do campo é date
'data:datetime', // tipo do campo é datetime
//Outra forma
[
'name' => 'data',
'value' => date("d-m-Y", strtotime($model->data))
],
//'file_name',
//'file_type',
'anexo:image', // tipo imagem
'file_size',
[
'name' => 'descricao',
'value' => nl2br($model->descricao)
],
],
]);
Valeu Aryel você salvou minha vida!
wally
(Fosales)
February 4, 2016, 11:36pm
4
Meu caro,
No caso dos labels, você pode setar no método attributeLabels() do model. Desta forma, qualquer referência à uma propriedade do model será exibida com o label customizado, sem a necessidade de explicitar em cada view.
No caso dos atributos booleanos, você pode, no arquivo config/main.php, configurar o componente format, conforme exemplo abaixo:
'format' => array(
'booleanFormat' => array('Não', 'Sim'),
),
Desta forma, você só precisa dizer qual o tipo do campo no widget, como por exemplo "aprovacao:boolean".
Espero ter ajudado.