0

有人可以告诉我如何从 smarty 修饰符返回的数组中引用值吗

我有一个返回数组的修饰符

$user = array("name"  => $name, "id" => $id, "email" => $email);
return $user;

当我尝试使用下面的代码访问模板中的返回值时,它只是说 Array

{$member|user_display:"name"}

我已经尝试了很多不同的方法,如果我使用{$member|user_display:"name"|@print_r}它会显示数组结构和值,所以那里的信息只需要得到它

4

1 回答 1

0

一切都取决于您需要什么功能。

如果您只想显示键的值,您的代码应如下所示:

聪明的修饰符:

function smarty_modifier_user_display($member, $field="name")
{                                                
  // sql searching user  
  $user = array("name"  => 'XXX', "id" => $member.'222', "email" => 'my@example.com');
  return $user[$field];
}

Smarty 模板文件:

{assign var=member value="3"}
{$member|user_display}
{$member|user_display:"name"}
{$member|user_display:"id"}
{$member|user_display:"email"}

但是当你有你展示的修饰符时:

function smarty_modifier_user_display($member)
{                                                
  // sql searching user  
  $user = array("name"  => 'XXX', "id" => $member.'222', "email" => 'my@example.com');
  return $user;
}

Smarty 模板文件应如下所示:

{assign var=member value="3"}

{assign var=my_user value = $member|user_display}

{$my_user.name}
{$my_user.id}
{$my_user.email}

您在使用修饰符时当然应该小心 - 我不知道您从什么来源为您的用户获取数据。但是,如果您从数据库中执行此操作,则不应每次都查询数据库,因为当您启动修饰符几次时,您的数据库将不必要地查询多次而不是一次。

于 2014-05-13T05:49:15.187 回答