Fala galera, blz?
Estou com o seguinte problema …
Queria montar uma Gridview que me mostrasse todos os funcionarios de um determinado centro de custo, no caso tenho as seguintes tabelas:
gop_mee_centro_custo -> possui o cadastro dos centros de custos e suas informações
gop_mee_smmateqe -> possui o cadastro dos funcionarios, e uma foreign key ‘nr_rs’ para se relacionar com centro de custo
o que fiz até agora:
GopMeeCentroCusto.php
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'funcionarios'=>array(self::HAS_MANY, 'VwMatEmpregado', 'nr_rs'),
);
}
public function primaryKey(){
return 'centro_custo';
}
dai tentei montar o GridVIew na view index.php
$criteria = new CDbCriteria();
$criteria->condition = 'centro_custo=:nr_rg';
$criteria->params = array(':nr_rg'=>56170);
$criteria->with = array('funcionarios'=>array('joinType'=>'INNER JOIN'));
//$teste = GopMeeCentroCusto::model()->findAll($criteria);
//var_dump($teste);
$teste2 = new CActiveDataProvider('GopMeeCentroCusto', array(
'criteria'=>$criteria,
));
var_dump($teste2);
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'person-grid2',
'dataProvider'=>$teste2,
//'filter'=>$model,
//'cssFile'=> Yii::app()->baseUrl . '/css/ricardo.css',
//'htmlOptions' => array('class' => 'grid-view rounded'),
'pager'=>array(
'header'=>'',
'firstPageLabel'=>'<<',
'prevPageLabel'=>'anterior',
'nextPageLabel'=>'proximo',
'lastPageLabel'=>'>>',
),
'columns'=>array(
array(
'name' =>'funcionarios.nr_rs',
'value' => '$data->funcionarios->nr_rs',
),
array(
'name' =>'funcionarios.nm_empregado',
'value' => '$data->funcionarios->nm_empregado',
),
),
));
POrém não consigo trazer os dados da tabela relacionada, no maximo apenas uma linha com as informações do centro de custo … porém acredito que meu relacionamento esta correto por que se usso o mesmo criterio e utilizo um findAll, dando um var_dump todos os funcionarios do centro de custo aparecem, da seguinte forma:
$criteria = new CDbCriteria();
$criteria->condition = 'centro_custo=:nr_rg';
$criteria->params = array(':nr_rg'=>56170);
$criteria->with = array('funcionarios'=>array('joinType'=>'INNER JOIN'));
$teste = GopMeeCentroCusto::model()->findAll($criteria);
var_dump($teste);
Estou fazendo algo errado? existe uma maneira mais legal de fazer?
Agradeço a todos que puderem ajudar … abs