Yii CGridViewとSQLカウント

私は2つのテーブル(慈善団体と票)の間のクエリの結果でcGridViewを読み込もうとしています。

慈善団体の投票表に投票数を表示しようとしています。投票テーブルにはチャリティーテーブルへのFKがあります。

私は左の結合でSQLでこれを行うことができますが、cGridViewはデータを表示するためにCActiveDataProviderオブジェクトを必要とし、カウントだけでなく結果を表示しない結果を返すために2つのテーブルを結合する方法がわかりません0に等しく、投票によって順序付けられる。

私は現在やっている:

投票モデルで:

public function relations()
{
    return array(
        'voteCount'=>array(self::STAT, 'Vote', 'charity_id'),
    );
}

charity_idはチャリティテーブルのFKです。

CGridViewウィジェットをビルドするには:

$criteria=new CDbCriteria(array(
'with' => 'voteCount',
));

$dataProvider=new CActiveDataProvider('Charity', array(
    'pagination' => false,
    'criteria' => $criteria,
));

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'ajaxUpdate'=>true,
    'columns'=>array(
        'Name',
        array(
            'name'=>'vote.voteCount',
            'value'=>'CHtml::encode($data->voteCount)',
        ),
    ),
));

今は複数の結果を返しているので、where節をどのようにソートして追加するのか分からないようです。

どんな助け?

0
私は基準があまりよくないですが、あなたは間違いなく条件に条件を加えることができます - $ criteria-> condition = 'voteCount> 0'
追加された 著者 Uday Sawant,
CActiveDataProviderを使用する必要がないレコードの場合は、CSqlDataProviderも使用できますが、ofcourse CActiveDataProviderのドキュメントに従うことをお勧めします。
追加された 著者 bool.dev,

2 答え

あなたはいくつかのマイナーな変更が必要です

Vote.php(投票モデル)

public function relations()
{
    return array(
        'voteCount'=>array(self::STAT, 'Vote', 'charity_id'),
    );
}

attributeLabels()にフィールドを追加する

'voteCount'=>'Votes',

CGridViewで 'Votes'列を追加する

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'ajaxUpdate'=>true,
    'columns'=>array(
        'Name',
        'Votes',
    ),
));
0
追加された

チャリティモデルに追加しよう

public function relations()
{
    return array(
        'vote'=>array(self::HAS_ONE, 'Vote', 'charity_id'),
    );
}

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'ajaxUpdate'=>true,
    'columns'=>array(
        'Name',
        array(
            'name'=>'Vote Count',
            'value'=>'CHtml::encode($data->vote->voteCount)',
        ),
    ),
));
0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com