J’ai une CGridView qui m’affiche une liste d’objet livre et avec le nom de l’auteur, je fais donc $data->auteur->nom pour accéder à la propriété nom de l’objet auteur issue de l’objet livre.
Avec cette extension (Behavior), il convient de définir une relation ‘nom_auteur’ à la valeur ‘auteur.nom’, et d’ajouter ‘nom_auteur’ dans les rules comme un champs autorisé pendant la recherche.
Ensuite, il ne sera plus nécessaire de définir un ‘nom_search’, ni d’implémenter spécifiquement la recherche dans la colonne de la table lié car RelatedSearchBehavior s’occupe de tout cela.
Il est vrai que j’utilises tout le temps “CHtml::value”, mais pour les CGridView j’utilise RelatedSearchBehavior.
De plus, une fois que ‘nom_auteur’ est défini pour RelatedSearchBehavior, ‘nom_auteur’ est disponible comme ‘champs virtuel’ et je peux utiliser $model->nom_auteur à tout moment, ainsi que $model->nom_auteur($value,…) qui est un scope permettant de limiter les recherches (find, findAll, …) par rapport à ce champs virtuel nom_auteur.
Cela nécessitera un peu de temps à comprendre, mais c’est très très puissant et fera gagner beaucoup de temps par la suite.
(Et ceux qui souhaitent pourraient venir dans mes Bureaux à Bezons pour une petite formation (contre rémunération) - on pourrait éventeuellement faire une première réunion Yii officielle en France).