0

「ストリーム」と「パンチ」の 2 つのテーブルがあります。1 つのストリームには多くのパンチがあります。 ここに画像の説明を入力

私の見解では、「CListView」を使用して、ストリームのすべてのパンチの画像を表示します。 ここに画像の説明を入力

しかし、ストリームの画像を最初のページに表示したいのですが、すべてのパンチの画像は次のページに表示されます。
どうやってやるの?ありがとう...

4

1 に答える 1

0

ああ、私はこの問題を解決しました... CActiveDataProvider を使用する代わりに、CSqlDataProvider を使用して 2 つのテーブルを「結合」します。

$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM tbl_user')->queryScalar();
$sql='SELECT * FROM streams union SELECT * FROM punches';
$dataProvider=new CSqlDataProvider($sql, array(
    'totalItemCount'=>$count,
    'sort'=>array(
        'attributes'=>array(
             'id', 'username', 'email',
        ),
    ),
    'pagination'=>array(
        'pageSize'=>10,
    ),
));
// $dataProvider->getData() will return a list of arrays.
于 2013-02-21T05:03:16.997 に答える