我们有一个社交网络创业公司,我们需要整合智能模板。我有一个php数组$profile_tasks
。 $profile_tasks
中的元素具有以下属性;
[0] => Array
(
[name] => hello
[location] =>
[date] =>
[time3] => 0
[time1] =>
[state] => 0
[like_count] => 0
[comment_count] => 2
[does_id] => 91
[comments] => Array
(
[sender_id] => 27
[content] => khhkhjkkhk
[time] => 2012-02-09 20:06:13
[user_name] => aacanakin
[picture_url] => http://graph.facebook.com/fb_user_name/picture
)
)
在我的smarty模板文件中,我已经像这样分配了$profile_tasks
数组;
$smarty->assign("profile_tasks", $profile_tasks);
在我的.tpl文件中,打印[name]
或[location]
字段等任何属性都没有问题。我有以下代码用于名称打印;
{foreach name=outer item=profile_task from=$profile_tasks}
{$profile_task.name}
{$profile_task.locatin} // these two works correctly
{foreach name=inner item=comment from=$profile_task.comments}
{comment.user_name} // these three statements doesn't return correct values
{comment.picture_url}
{comment.content}
{/foreach}
{/foreach}
因此,正如我之前所说,comments
数组中的值不正确。我应该在内循环中改变什么?任何帮助将不胜感激。
答案 0 :(得分:1)
只需使用
{comments.user_name} // these three statements doesn't return correct values
{comments.picture_url}
{comments.content}
你不需要
{foreach name=inner item=comment from=$profile_task.comments}
如果你的注释数组有多个子数组,那么就可以。
更新: 根据评论更新。您的数组需要看起来像这样才能使您的原始代码正常工作
[comments] => Array(
[0] => Array
(
[sender_id] => 27
[content] => khhkhjkkhk
[time] => 2012-02-09 20:06:13
[user_name] => aacanakin
[picture_url] => http://graph.facebook.com/fb_user_name/picture
)
)
PS。在一个子注释中,我很早就意识到使用默认的{}
来表示智能标签真的很烦人,因为你不能在html模板页面上与javascript共存。如果你没有走太远的路线,我会用
$left_delimiter -> '{[';
$right_delimiter -> ']}';
指定替代方案。这意味着您不必担心在任何地方使用{literal}标记。