私はYii-dynamic-active-recordモデル クラスを使用して、さまざまなデータベース テーブルにデータを取得および配置しています。cgridview を使用して、このデータのいくつかのビューをすばやく作成したいと考えていますが、このクラスの検索関数を作成することに行き詰まっています。
ビュー内でいつでも foreach ループを実行して、独自の html テーブルを作成できることはわかっていますが、Yii の方法で動作させることができれば、DRY に最適です。
*すべての db テーブルには ID 列があり、これが実際に表示する必要がある唯一の列です...すべての列を取得できればボーナス ポイントになります。
ありがとう :)
モデル
public function search()
{
$criteria=new CDbCriteria;
$criteria->compare('ID',$this->ID);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
意見
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'entry-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'ID',
),
));
コントローラ
$tablename=$_GET['tname'];
$table=Entry::forTable($tablename);
$model=$table->findAll();
if(isset($_GET['Entry']))
$model->attributes=$_GET['Entry'];
$this->render('all',array(
'model'=>$model,
));