テーブル内の列とテーブルデータ自体を指定して、HTMLテーブルを作成する「ビュー」または関数を作成しようとしています。これは、YiiのrenderPartialメソッドによって呼び出されるページになります。私はそれを次のようにすることを想像しました(疑似コードを使用してデモンストレーションします):
void view(array $cols, array $tabledata)
{
//$tabledata will be an array of CActiveRecord objects. $cols is an array of strings from getColumnNames().
<table><thead><tr>
foreach($cols as $col)
{
<th>$col</th>
}
</tr></thead><tbody>
foreach($tabledata as $data)
{
<tr>
foreach($cols as $col)
{
<td>$data->$col</td>
}
</tr>
}
</tbody></table>
}
ただし、私が直面している問題は、リレーションの列を取得できないことです。http://www.yiiframework.com/doc/api/1.1/CDbTableSchemaを見つけましたが、特定のテーブルの列名しか表示されないようです。リレーションを使用してHTMLテーブルを生成するときに使用されるすべての列を取得する方法が必要です。あるいは、誰かがこれを行うためのより良い方法を持っているなら、私に知らせてください。ありがとう!
編集:注意として、以下にリストしたものを含めてCGridViewを使用しない理由は、列またはデータが何であるかを知りたくないためです。コードだけでテーブルを作成できるようにしたいと思います。