我想創建「視圖」或一個函數,將通過給予表中的列和表數據本身來構建HTML表。這將是Yii中的renderPartial方法調用的頁面。 我想象做這樣的事情(將演示如何使用僞代碼):基於Yii(關係)數據庫表動態創建一個html表?
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的原因包括我列出的一個,我不想知道列或數據是什麼。我希望能夠使用代碼來構建表格。
我應該指定我需要使用的特定函數,它不能與CGridView一起使用。 – Prateek
你是指表生成邏輯內的函數?在這種情況下,您可以輕鬆地擴展CGridView並覆蓋renderTableRow(),renderTableHeader()等等。 – dInGd0nG
如果您想要相關列,您可以調用'CActiveRecord'的'getRelated()'函數 – dInGd0nG