2012-03-27 68 views
1

有表:如何作出Many_Many關係Yii的條件

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

使用簡單警予型號:

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

使用簡單警予控制器:

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

警予返回的完整列表,與出狀態狀態:(

如何獲得電影的條件movie.state = 1?

回答

1

的文檔。如果這是一個有條件的狀態:

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

根據Yii的版本,你可以刪除' :'在params的數組鍵中。 閱讀有關它們,並將以前的答案標記爲最好。