動的な表の出力ヘルパーtableHeaders/tableCells
HTMLヘルパーのtableHeaders, tableCellsは、配列の数だけth/tdを出力してくれる、動的に表を作る際に実に便利なヘルパーなのですが、
tableHeaders第三引数オプションの$thOptionsは、全部のthに同じオプションしか指定できません。
CookBookだけでは分からなかったので、メモ。
http://book.cakephp.org/ja/view/840/tableHeaders
例えば
$html->tableHeaders( $values, $tr_options, array("id" => "test") );
と指定すると、全thタグに、id="test"が出力されます。
これはいただけません(>_<)。
ためしに、
$html->tableHeaders( array("姓", "名"), $tr_options, array(array("id" => "familyName"), array("id" => "firstName")) );
と指定してみましたが、全thタグが<th 0="0" 1="">となりました。
今回、目的は「列ごとに固定幅を指定する」でした。
tableCellsの第4引数、$useCount を trueにすると、
<td class="column-1">…</td><td class="column-2">…</td>・・・
のように、列ごとにclassが自動指定されるので、こちらを利用して実装しました。
http://book.cakephp.org/ja/view/841/tableCells
でも、tdではなくあくまでth側に、行ごとのオプション指定が必要な場合、ハックして、$value[$k]と対応する$th_options[$k]を出力するヘルパーを作る必要があるかも知れません。