Smarty - foreach


Smartyにおけるforeach文の例を書いてみる。
普通に空で書けるけど。。。

  • ロジックソース

array(
    "2-1次職" => "プリ",
    "2-2次職" => "モンク"
  ),
  "マジ" => array(
    "2-1次職" => "ウィズ",
    "2-2次職" => "セージ"
  )
);
$smarty->assign("job", $job);
?>

  • テンプレートソース
<table>
  <tr>
    <th>一次職</th>
    <th>二次職1</th>
    <th>二次職2</th>
  </tr>
  {foreach from=$job key=key item=item}
  <tr>
    <td>$key</td>
    <td>{$item.2-1次職}</td>
    <td>{$item.2-2次職}</td>
  </tr>
  {/foreach}
</table>
  • 出力

                 
一次職2-1次職2-2次職
アコプリモンク
マジウィズセージ


今日仕事でとある管理画面作ってたんだけど、なーんかうまく行かなくて、データベースの検索結果が表示されず。。。
テンプレートで適当に{$item->2-1次職}やら{$item['2-1次職']}やら試したら、後者でうまく行きました。


フレームワーク依存で通常の記法が使えなかったみたいデス。
管理画面一番工数少なく見積もられてるのに一番時間かかったヨ(汗)


原因がSQLなのかDAOなのかLOGICなのかDESIGNなのかELSEなのか特定するのに時間が。。。まだまだデスナ。


この特有の記法、早く慣れなきゃなぁ。
てかこういうこともあるんだって勉強になったわ。