Hi guys.
First of all, before creating this post, i searched a lot at yii forum about similar problems, but I have not found anything like.
I have one relation MANY_TO_MANY, that the model CmlProdServicos has many CmlVlrProdServ, and it’s representing this way:
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(
'CmlVlrProdServ' => array(self::HAS_MANY, 'CmlVlrProdServ', 'int_cod_prod_serv','alias'=>'valores'
),
);
}
So, i want select all attributes from CmlProdServicos(That already works) but i want to show only specified attributes from relational model CmlVlrProdServ, so i did:
$Criteria = new CDbCriteria();
Criteria->with = array("CmlVlrProdServ"=>array("select"=>"valores.num_vlr_total,valores.str_inf_descricao"));
CmlProdServicos::model()->findAll($Criteria);
But didn’t work. So i created one scope:
public function scopes()
{
return array(
'recently'=>array(
'select'=>array('valores.num_vlr_total','valores.str_inf_descricao'),
'order'=>'int_cod_vlr_prod_serv DESC',
'limit'=>1,
'together'=>true
),
);
}
CmlProdServicos::model()->with("CmlVlrProdServ:recently")->findAll($Criteria);
What happened ? Showed correctly the attributes chosen to select, in this case: ‘valores.num_vlr_total’,'valores.str_inf_descricao, but still show the other attributes from CmlVlrProdServ with NULL values as follow:
//JSON code to facilitate the presentation of data
[
{
"int_cod_prod_serv": 15818,
"str_cod_referencia": "126874",
"str_inf_sigla": null,
"str_inf_descricao": "Pep Toe com Borda Dourada",
"opt_tip_prod_serv": "P",
"opt_tip_migrado": "A",
"num_vlr_unitario": "109.9900",
"txt_inf_especificacao": "Modelo=AND3133819",
"dat_ref_registro": "2014-06-13",
"str_ref_image": "126874.jpg",
"opt_tip_ativo": "S",
"CmlVlrProdServ": [
{
"num_vlr_total": "219.99",
"str_inf_descricao": "ou 3x 73.33",
"int_cod_vlr_prod_serv": 1008,
"int_cod_prod_serv": null,
"int_seq_controle": null,
"str_cod_referencia": null,
"num_vlr_unitario": null,
"num_vlr_parcelado": null,
"txt_inf_detalhamento": null,
"dat_ref_registro": null,
"": null
}
],
"": null
}
]
What i’m doing wrong ? What i need to do to show only fields relational chosen ?
Can anyone help me please ?