【Smarty3.x】ビューテンプレートに配列を渡す2014-11-24

フレームワークやCMSの登場以来、影が薄くなったテンプレートエンジンのSmartyだが
簡単なシステムの構築には今でもお世話になることがある。
少しづつ掘り下げて投稿していくが、まずはデータベースから取得したデータを
ビューテンプレートやレイアウトテンプレートに配列として渡す処理から

【コントローラ側】
 ●単一のデータを取得する場合
 データベースから取得したデータをmysqli_fetch_assoc()やmysqli_fetch_array()関数で配列に格納し、アサインする。
  $hoge = mysql_fetch_assoc($db_result); //データベースデータを配列として格納
  Smaty ->assign('hoge', $hoge);  //ビューテンプレートにアサインする

 ●複数のデータを渡す場合
 assignのかわりにappendを使用する。下記のコード参照

 $sql = "SELECT * FROM hoges";
 $result = mysqli_query($connection, $sql);

 $smarty = new Smarty();
 while($data = mysqli_fetch_assoc($result)){
  $smarty->append('data', $data);
 }

【ビュー・レイアウトテンプレート側】
 ●単一データの場合
 ビュー側は、{$hoge.fieldname}
 これだけで終了。Smartyのテンプレートでの「.(ドット)」は、結合演算子ではなく
 PHPでいうなら、$hoge['fieldname']の意味となる。