Um eine Suche auch über die Relationen einer Active Record Klasse zu realisieren, muss Folgendes beachtet werden:
1. Die Relation muss vorhanden sein:
public function relations()
{
'categories' => array(self::HAS_MANY, 'place_id', 'category_id'),
2. Die Relation muss suchbar sein:
public function rules()
{
array('name, categories', 'safe', 'on' => 'search'),
3. In der Suchfunktion muss folgender Code eingefügt werden. Das OR ist dabei optional aber wichtig, wenn man sich wundert, dass keine Ergebnisse angezeigt werden in der View.
public function findPlaces($searchTerm)
{
$criteria = new CDbCriteria;
$criteria->compare('name', $this->name, true, 'OR');
$criteria->with = array('categories' => array("together" => true));
$criteria->compare('categories.name', $searchTerm,true, 'OR');
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
));
}

