Yii Critères: la condition pour relation
j'ai deux tables: l'Utilisateur et le User_works (Utilisateur HAS_MANY User_works).
Comment puis-je ajouter une condition pour être affiché seuls les utilisateurs avec certaines œuvres
De l'utilisateur contient les champs: id | nom | Autres informations
User_works: id | user_id | work_id
De L'Utilisateur Modèle:
public function relations()
{
return array(
'works'=>array(self::HAS_MANY, 'UserWorks',
'',
'on' => 'works.user_id=t.id',
'together'=>false,
),
)
}
Contrôleur:
$criteria = new CDbCriteria();
$criteria->with = array('works');
$criteria->compare = ????
vous souhaitez que les données des utilisateurs avec certaines œuvres dire que vous voulez la recherche de work_id de User_works table ?
OriginalL'auteur Taram | 2014-03-11
Vous devez vous connecter pour publier un commentaire.
Solution:
Je voulais quelque chose comme ça:
De L'Utilisateur Modèle:
Contrôleur:
Comme un résultat, je reçois les utilisateurs avec les travaux nécessaires.
Mais а nouveau problème se pose. Le nombre de pages dans la liste n'affiche correctement.
Affichage de la liste ne considère pas l'état des travaux nécessaires. En conséquence, un certain nombre de page est incorrect.
Solution :
ou
Au lieu de définir le dataprovider critères:
J'ai mis dataprovider->critères du modèle:
OriginalL'auteur Taram
$criteria->together = true
.Puis-je le faire sans l'option "ensemble = true"?
Je pense que vous n'avez pas besoin
together
, lorsque vous avezwith
, c'est faitoù voulez-vous utiliser ce critère?
vous devriez essayer les deux. J'ai eu un scénario où mes filtres ne fonctionnaient pas comme prévu car
together
n'est pas mis àtrue
. Lire le Yii Relation guide pour une meilleure explication.OriginalL'auteur Developerium