Klucze w bazie danych są ok.
W modelu postów mam taka relację(MANY_MANY)
mam równiez taką metodę:
public function search($id){
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('title',$this->name,true);
$criteria->compare('text',$this->mail,true);
$criteria->compare('insert_time',$this->insert_time,true);
$criteria->with = array('kategorie');
$criteria->condition = 'kategorie.id = '.$id;
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
W kontrolerze:
public function actionViewPosts($id){
$model=new Posts();
$model->search($id);
$model->unsetAttributes();
if(isset($_GET['Posts']))
$model->attributes=$_GET['Posts'];
$this->render('viewPosts',array(
'posts'=>$model,
'id'=>$id
));
}
W widoku:
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'posts-grid',
'dataProvider'=>$posts->search($id),
'filter'=>$posts,
'columns'=>array(
'id',
'title',
'text',
'link',
array(
'class'=>'CButtonColumn'
),
),
),
));
?>
I niestety, w prawdzie wyszukuje posty, ale znajduje dla każdej kategorii wszystkie(tzn. nie dzieli na kategorie - zawsze mam wszystie posty :/). W dodatku padła ta światna przeszukiwajka tabeli -> chcąc filtrować sobie ajax’owo po kolumnach system tylko mieli i nic nie zmienia:/
PS.
Gdy utworzyłem model kategorie_posty i w nim zmodyfikowałem funckcje search to działało tylko z koleji zamiast nazw miałem same id 