So zeigen Sie Daten aus verknüpften Tabellen in CGridview in yii an
Ich versuche, die Ergebnisse mit CGridView anzuzeigen. Ich habe zwei TischeBenutzer undProdukte. ExiProducts ist die Tabelle, die die Viele-zu-Viele-Beziehung zwischen dann aufrechterhält, und der Beziehungsname ist 'Meine Beziehung'.
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,
));
}
Das ist meinview.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 '
),
));
Kann mir jemand bitte sagen, wie ich den Namen der Benutzer erhalte, die diese Produkte dort herstellen. Spalten inBenutzer Tisch sind
UserId,
Username
undExiProducts sind
UserId,
ProductId
Mein Code wurde aktualisiert
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;
}