LoginSignup
1
0

More than 1 year has passed since last update.

SmartyでPHPからテンプレートへ値を渡す

Posted at

用途

SmartyでPHPからテンプレートに値を渡したい時に使う。
PHPで処理したものなどをSmartyでテンプレートに渡したい時に使う。

使用方法

phpファイルでの渡し方
$smarty->assign("変数名", "値");

渡す際は、assign の第1引数に「変数名」、第2引数に「渡したい値」を指定する。

テンプレートファイルでの受け取り方(表示の仕方)
{$変数名}

受け取る際は、phpファイルで指定した変数名の先頭に $ をつけて {} で囲む。


文字列を渡す

phpファイルで文字列を渡す
$smarty->assign("hoge", "abcdefg");
テンプレートファイルで文字列を受け取る
{$hoge}です。

// 結果
abcdefgです。

配列を渡す

phpファイルで配列を渡す
$array = ["a", "b", "c", "d", "e"]
$smarty->assign("hoge", $array);
テンプレートファイルで文字列を受け取る
{$hoge[0]}です。<br>
{$hoge[1]}です。<br>
{$hoge[2]}です。<br>
{$hoge[3]}です。<br>
{$hoge[4]}です。

// 結果
aです。
bです。
cです。
dです。
eです。

連想配列を渡す

phpファイルで連想配列を渡す
$array = ["name"=>"tanaka", "color"=>"red", "number"=>"1"]
$smarty->assign("hoge", $array);
テンプレートファイルで文字列を受け取る
名前は{$hoge.name}です。<br>
色は{$hoge.color}です。<br>
数字は{$hoge.number}です。

// 結果
名前はtanakaです。
色はredです。
数字は1です。


デフォルト値を設定する

phpファイルで文字列を渡す
$smarty->assign("hoge", "");
テンプレートファイルで文字列を受け取る
{$hoge|default:"ない"}です。

// 結果
ないです。

※変数の値が空だった場合に、デフォルト値が表示される。


フォーマットを指定する

テンプレートファイル
{$smarty.now|date_format:"%H時%M分"}
{$smarty.now|date_format:"%H:%M:%S"}

// 結果
10時10分
10:10:10

smarty.now は現在時刻を表します


if文

phpファイルで文字列を渡す
$smarty->assign("hoge", "abc");
テンプレートファイルで文字列を受け取る
{if $hoge == "123"}
  123です。
{elseif $hoge == "abc"}
  abcです。
{else}
  当てはまりません。
{/if}

// 結果
abcです。

foreach

phpファイルで文字列を渡す
$array = ["a", "b", "c", "d", "e"]
$smarty->assign("hogehoge", $array);
テンプレートファイルで文字列を受け取る
{foreach from=$hogehoge item="hoge"}
  {$hoge}です。
{/foreach}

// 結果
aです。bです。cです。dです。eです。

from=phpファイルで指定した変数名 , item=foreach内で使用する名前 のように書く。
foreach内では item で指定した名前の先頭に $ をつけて、 {} で囲む。


メモ書き(コメントアウト)

テンプレートファイルで文字列を受け取る
{*メモをここに書く*}

※メモとして残しておきたい文を {**} で囲む。(開発者のメモなど)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0