2

今日は 1 つの問題に苦しんでいましたが、なんとか自分で解決することができました。今、私は別の問題を抱えています。このような状況では、CActiveDataProvider クラスを使用する方がよいことがわかりました。私のDataProviderのコードは次のとおりです。

$dataProvider=new CActiveDataProvider('Category', array(
            'criteria'=>array(
                'with'=>array('products'),
                'condition'=>'t.id=1',
            ),
));

次に、このデータ プロバイダーをウィジェットに渡しましたが、その値にアクセスできませんでした。誰かができる場合は、プロセスを案内してください。ありがとう。

4

2 に答える 2

3

Yiiコミュニティの助けを借りて動作しました(ありがとう:))
コントローラーのコードは次のとおりです。

$dataProvider=new CActiveDataProvider('Product', array(
    'criteria'=>array(
            'with'=>array('category'),
                'condition'=>'category.id=:id',
                'params'=>array(':id'=>$id),
    ),
));
于 2012-07-04T23:22:20.140 に答える
0

それはあなたのウィジェットが何を必要とするかによります。 は、並べ替え、ページ付け、およびフィルタリングの拡張機能を備えCActiveDataProviderたのラッパーです。通常、ソートおよび検索機能を利用している、またはそのようなziiウィジェットと組み合わせて使用​​されます。CActiveRecordCActiveDataProviderCListViewCGridView

したがって、(オプションの)並べ替え/フィルタリング/ページ付けを使用してリストまたはテーブルの観点からデータを表示する場合-Yiiでそれを行う最も便利な方法は、説明されているziiウィジェットまたはその拡張機能を使用することです。

データをフェッチして他の方法で使用する必要があるが、CListViewまたはによって提供されるスマートレンダリングメカニズムがない場合は、データのフェッチ以外は何も実行しないため、をCGridView使用します。CActiveRecord

このような状況では、CActiveDataProviderクラスを使用する方がよいことがわかりました。

CActiveRecord関係の魔法を行うために等しく使用することができます

于 2012-07-04T18:13:27.237 に答える