【问题标题】:How make Yii condition on Many_Many relations如何使 Yii 条件为 Many_Many 关系
【发布时间】:2012-03-27 11:29:39
【问题描述】:

有桌子:

    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 的电影?

【问题讨论】:

    标签: php yii yii-relations


    【解决方案1】:

    如果我正确地阅读了你的关系,这应该可以工作。

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

    无论如何,请查阅文档以获取更高级的查询选项 :) http://www.yiiframework.com/doc/api/1.1/CActiveRecord#find-detail

    【讨论】:

      【解决方案2】:

      如果是条件状态:

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

      根据 Yii 的版本,您可以删除 params 数组键中的 ':'。 阅读它们并将之前的答案标记为最佳答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多