2014-01-28 5 views
0

Я две модели класса, как A, BYii: Как получить доступ к соответствующей модели объекта с пределом

А и В и имеет отношение, определенное в классе модели, как:

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, но я хочу лишь ограниченные записи, как только 4 B's для каждого A's:

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

Как я могу получить доступ только 4 записи B для каждого A-х

ответ

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

Вы можете передать параметр размера функции геттера.

Попробуйте следующее:

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

Это должно вернуть 4 записи. Вы также можете добавить дополнительные вещи, такие как заказ, чтобы определить, к какому 4 получить.

Смежные вопросы