1

テーブルがあります:

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

単純な yii モデルを使用します。

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

シンプルな yii コントローラーを使用します。

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

yii は out 状態ステータスを含む完全なリストを返します:(

movie.state = 1 という条件でムービーを取得するにはどうすればよいですか?

4

2 に答える 2

2

私があなたの関係を正しく読んでいれば、これはうまくいくはずです。

$res = Place::model()->with('movies')->findAll(array('condition'=>'movies.state =1'));

いずれの場合も、より高度なクエリオプションについては、ドキュメントを参照してください:) http://www.yiiframework.com/doc/api/1.1/CActiveRecord#find-detail

于 2012-03-27T12:58:48.827 に答える
1

条件付き状態の場合:

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

Yii のバージョンによっては、params の配列キーの「:」を削除できます。それらについて読んで、前の回答をすでに最高のものとしてマークしてください。

于 2012-04-26T21:09:34.580 に答える