Comment afficher des données à partir des tables liées dans CGridview dans yii
J'essaie d'afficher les résultats à l'aide CGridView. j'ai deux tables Utilisateurs et produits. ExiProducts est la table qui maintient le de nombreux de nombreux de la relation entre le et laissez-le nom de la relation est "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,
));
}
C'est mon view.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 '
),
));
Quelqu'un peut-il me dire comment je peux obtenir le nom des utilisateurs de la création de ces produits.
les colonnes en utilisateurs table sont
UserId,
Username
et ExiProducts sont
UserId,
ProductId
Mis à jour mon code
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;
}
OriginalL'auteur Let me see | 2013-11-29
Vous devez vous connecter pour publier un commentaire.
vue de l'affichage de la grille
C'est vous la vue de grille
value => array($this,'gridCreatedUser')
cela signifie que la grille de vue de la recherche d'une fonction dans son contrôleur pour une fonction gridCreateUser()Maintenant dans le contrôleur
Pas de vous envoyer la valeur souhaitée de la coulmn nom pour afficher la grille.
Ou vous pouvez utiliser d'une manière simple, par définition de la relation entre les modèles à l'intérieur de modèle dont le gridview vous créez
Ensuite, vous pouvez directement y accéder en vous afficher en grille
avez-vous besoin de toutes les valeurs de ce tableau? ou une valeur particulière?
oui, monsieur, j'ai besoin de toutes les valeurs dans le tableau séparé par une virgule ici
Pouvez-vous me montrer ton code ?
laissez-nous continuer cette discussion dans le chat
OriginalL'auteur Neeraj Kumar
C'est facile .
Tout ce que vous avez à faire est d'écrire un rapport dans le fichier de modèle ExiProducts
Et vous pouvez l'utiliser dans la vue en Grille comme
OriginalL'auteur Jenno Richi Benat
Ajouter un lien dans votre table des utilisateurs en modifiant les relations() dans votre modèle de page, comme indiqué
Dans votre view.php ,
OriginalL'auteur Reshma R P