relations / gridview

let’s say I have 2 tables :

countries ( id ‘pk’, name )

users ( id ‘pk’, username, … )

and this function that defines the relation

public function relations()


	return array(

		'country' => array(self::BELONGS_TO, 'Countries', 'country_id'),



when I use in the view file, the column "country name" is no longer searchable,

any help is appreciated :)

I make virtual attributes for them. So basically you need to create:

$this->_country = null;

function getCountry() { //these two are the functions that make the virtual attributes

  if($this->_country == null) {

    $this->_country = $this->country->name;


  return $this->_country;


function setCountry($c) {

  $this->_country = $c;


function search() {


$criteria->compare('', $this->country, true); //Note that I am not using $_country


because grid view check if the column name has “.” don’t filter i think.


EDIT: sorry wrong url

@Mr Soundless

I was just thinking of doing a wiki on this kind of subject, given the number of posts about it recently, but your blog entry describes it exactly as needed!

Thanks for the help :)