Cómo mostrar datos de tablas relacionadas en CGridview en yii
Estoy tratando de mostrar los resultados utilizando CGridView. Tengo dos mesasUsuarios yproductos. ExiProductos es la tabla que mantiene la relación de muchos a muchos entre entonces y deja que el nombre de la relación sea 'myrelation'
public function actionSearch() {
if(isset($_GET['searchButton'] && $_GET['searchType']==='products') {
$searchString= trim(strip_tags($_GET['searchValue']));
$model=new Products;
$criteria->compare('productName', $searchString, TRUE, 'AND', TRUE);
$criteria->compare('productType',$searchString,true,'OR',TRUE);
$criteria->compare('productBrand',$searchString,true,'OR',TRUE);
$criteria->compare('description',$searchString,true,'OR',true);
$dataProviderObj=new CActiveDataProvider($model, array(
'criteria'=>$criteria,
));
}
$this->render('search',array(
'dataProviderObj'=>$dataProviderObj,
'model'=>$model,
));
}
Este es miview.php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'users-grid',
'dataProvider'=>$dataProviderObj,
'columns'=>array(
'productName',
'productType',
'productBrand',
'description',
'I WANT THE NAME OF EVERY USER THAT CREATED THIS PRODUCT
HERE WHICH IS IN THE USERS TABLE '
),
));
¿Puede alguien decirme cómo puedo obtener el nombre de los usuarios que crean esos productos allí? columnas enusuarios mesa son
UserId,
Username
yExiProductos son
UserId,
ProductId
Actualicé mi código
public function gridCreateUser($data,$row) {
$myproducts=array();
$user = $data->userId;
$records= Users::model()->with('usersproducts')->findAll('userId=:userId',array(':userId'=>$user));
foreach($records as $record)
{
foreach($record->usersproducts as $productis)
{
$myproducts[]=$productis->productName;
}
}
return $myproducts;
}