2012-10-02 26 views
0

我正在研究如何使用Mustache.php来做常见的事情。 在这一点上,我试图在模板中替换原生的php switch语句。在mustache.php中替换php switch语句的简单方法?

给定“状态”标志,例如, 'A'主动,

和一组像A => Active, I => Inactive, P=>Pending, D=>Deleted显示选项,

我将如何使Mustache.php一个不错的显示字符串在模板修改数据?

为表实施例的数据:

$users = array(
array('username'=>'william', 'status'=>'A', 'date_created'=>'7-01-2012'), 
array('username'=>'john', 'status'=>'P', 'date_created'=>'5-17-2012') 
); 

回答

2
小胡子

的整点,是具有模板从所有逻辑干净。小胡子模板应该是无逻辑的。对于新手来说,这是一个完全不同且令人困惑的方法。

要解决您的问题,您需要重新处理$users阵列以包含Mustache模板需要的所有内容。 例如如果statusswitch声明的目的是为显示人类可读的状态,那么你的视图类应该是这个样子:

class View_User { 

    public $_users; 

    public function users() 
    { 
     $users = array(); 
     foreach ($this->_users as $user) 
     { 
      $user->status_label = // Use your 'switch' statement here 
      $users[] = $user; 
     } 
     return $users; 
    } 
} 

然后所有的胡子模板需要做的,就是输出{{status_label}}像这样:

<ul> 
    {{#users}} 
     <li>Status: {{status_label}}</li> 
    {{/users}} 
</ul> 

在View类中包含您的逻辑,并使您的Mustache模板无逻辑。以这种方式分离的UI代码使得以后更容易维护和重新分配。