2012-03-27 6 views
1

haben Tabellen:Wie Yü Bedingung machen auf MANY_MANY Beziehungen

place (id, title, state); 
movie (id, title, state); 
schedule (place_id, movie_id, time); 

Gebrauch einfach yii Modelle:

place.relations: 
'movies' => array(self::MANY_MANY, 'movie', 
       'schedule(place_id,movie_id)', 
       'condition' => 'time > now()'), 

Gebrauch einfach yii Controller:

$tmp = new Place(); 
$res = $tmp->findAll(); 
var_dump($res[0]->movies); 

yii gibt eine vollständige Liste mit der Status des Ausgangszustandes :(

Wie kann ich Filme mit der Bedingung movie.state = 1 bekommen?

Antwort

1

Wenn es ein bedingter Zustand ist:

$state = $_POST['state']; 
$res = Place::model()->with('movies')->findAll(array('condition'=>'movies.state=:m_state', 'params'=>array(':m_state'=>$state))); 

auf Version von Yü Je, können Sie entfernen die ' : 'in den Array-Tasten von Params. Lesen Sie über sie und markieren Sie die vorherige Antwort als beste bereits.