Yii:如何访问带有限制的相关模型对象

时间:2014-01-28 11:29:57

标签: php yii

我有两个模型类,如A,B

A和B都在模型类中定义了关系,如:

class A extends CActiveRecord {
  ...
  public function relations() {
    return array(
      'b' => array(self::HAS_MANY, 'B', 'a_id'),
    );
  }
  ...
}

class B extends CActiveRecord {
  ...
  public function relations() {
    return array(
      'a' => array(self::BELONGS_TO, 'A', 'a_id'),
    );
  }
  ...
}

现在我使用脚本提取所有A

$a = A::model()->findAll();

然后在我访问B的所有A相关对象后,但我只想要有限的记录,例如每B's只有4 A's

foreach($a as $each_a) {
  $b = $each_a->b; // Want only 4 B's here
}

如何为每个A的

仅访问4个B的记录

2 个答案:

答案 0 :(得分:1)

change 
$bList = $a->b(array('limit',4));
to  
 $bList = $a->b(array('limit'=>4));

答案 1 :(得分:0)

您可以将size参数传递给getter函数。

尝试以下方法:

$bList = $a->b(array('limit',4));

这应该返回4条记录。您还可以添加其他内容,例如订单,以识别要获取的4个。