Amigos,
Tenho uma tabela de aivso e gostaria de visualizar no avisos/index.php só os avisos que estão com status de ativos. Como faço isso no _view .
Abaixo segue o meu _view.
<div class="view">
<h3><?php echo CHtml::encode($data->getAttributeLabel('titulo')); ?>:
<Font color="#104E8B"><?php echo CHtml::encode($data->titulo); ?></font></h3>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('user')); ?>:</b>
<Font color="#B22222"><?php echo CHtml::encode($data->user0->nome) . " em " .
CHtml::encode($data->data) . " as " . CHtml::encode($data->hora); ?></font>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('narrativa')); ?>:</b>
<Font color="#104E8B"><?php echo CHtml::encode($data->narrativa); ?></font>
<br /><br />
</div>
De antemão obrigado a todos.
Olá Adrian Lucas!
Vc realmente quer fazer esse filtro na _view?
Se for, eu criaria uma condição verificando:
<?php if($data->status): ?>
<div class="view">
<h3><?php echo CHtml::encode($data->getAttributeLabel('titulo')); ?>:
<Font color="#104E8B"><?php echo CHtml::encode($data->titulo); ?></font></h3>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('user')); ?>:</b>
<Font color="#B22222"><?php echo CHtml::encode($data->user0->nome) . " em " .
CHtml::encode($data->data) . " as " . CHtml::encode($data->hora); ?></font>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('narrativa')); ?>:</b>
<Font color="#104E8B"><?php echo CHtml::encode($data->narrativa); ?></font>
<br /><br />
</div>
<?php endif; ?>
Outra alternativa é passar o critério direto no controller onde faz a chamada do CActiveDataProvider:
public function actionIndex() {
$dataProvider = new CActiveDataProvider('Aviso',array(
'criteria'=>array(
'condition'=>'status=1',
),
));
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
Flw!
Olá Adrian Lucas!
Vc realmente quer fazer esse filtro na _view?
Se for, eu criaria uma condição verificando:
<?php if($data->status): ?>
<div class="view">
<h3><?php echo CHtml::encode($data->getAttributeLabel('titulo')); ?>:
<Font color="#104E8B"><?php echo CHtml::encode($data->titulo); ?></font></h3>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('user')); ?>:</b>
<Font color="#B22222"><?php echo CHtml::encode($data->user0->nome) . " em " .
CHtml::encode($data->data) . " as " . CHtml::encode($data->hora); ?></font>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('narrativa')); ?>:</b>
<Font color="#104E8B"><?php echo CHtml::encode($data->narrativa); ?></font>
<br /><br />
</div>
<?php endif; ?>
Outra alternativa é passar o critério direto no controller onde faz a chamada do CActiveDataProvider:
public function actionIndex() {
$dataProvider = new CActiveDataProvider('Aviso',array(
'criteria'=>array(
'condition'=>'status=1',
),
));
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
Flw!
Valeu amigo, obrigado pela ajuda. Preciso sim fazer esse filtro, para que só os avisos que tiverem com status de 1 (true) possam ser vistos pelos demais usuários.
menezes
(Menezes Web)
June 15, 2012, 8:15pm
4
Então Adrian, faça como o Thiago disse. No seu model onde tem a consulta, faz esse filtro direto na sua query. Com isso vc deixa sua regra de negócio separado da camada de apresentação.
Valeu amigo, vou seguir a dica de vcs…