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 回答