Edited at

【Smarty】配列のキーにハイフンを使ったらアウトらしい

More than 5 years have passed since last update.


問題

PHPテンプレートエンジンのSmartyで、変数の内容がうまく表示されないという問題がありました。

それは、入力フォームで発生した問題。


form.html

 <input type="text" name="r1-date" value="{$post.r1-date}">



form.php

$post = $_POST;

$smarty->assign('post', $post);

入力欄には日付を"2014/07/22"の形式で入力し、ポストされた日付はvalue の値になる、という仕組みでした。

しかし、何度やっても出力が 0 (ゼロ)になる。。

どうしたもんか。


解決策

name とキーの "r1-date" から ハイフンを取り除いたら 解決しました。


form.html

 <input type="text" name="r1date" value="{$post.r1date}">



form.php

$post = $_POST;

$smarty->assign('post', $post);

けっこう長い時間つまっていたのですが、エディタのハイライト機能のおかげで「ハイフンがあやしい」と気づいて解決できました。


参考

解決した後に見つけた参考サイト。

http://babie.hatenablog.com/entry/20060306/p2

http://tohokuaiki.hateblo.jp/entry/20090525/1243228581