4

我在核心 PHP 中使用 Mustache 模板将 PHP 页面转换为模板。现在我想在模板中使用 switch case,例如:

<?php
    switch ($gift_card['FlagStatus']) {
        case 'P': 
            echo "Pending";
            break;
        case 'A':
            echo "Active";
            break;
        case 'I':
            echo "Inactive";
            break;
    }

?>

它的类似 Mustache 翻译应该是什么?提前致谢

4

2 回答 2

5

如果您需要做的不仅仅是从 switch 语句中输出单个值,最简单的解决方法是创建一系列布尔值,每个状态一个:isPendingisInactiveisActive,然后为每个可能性使用单独的部分:

{{#isPending}}
Your gift card is pending. It will be activated on {{activationDate}}.
{{/isPending}}
{{#isActive}}
Your gift card is active. Its balance is ${{balance}}.
{{/isActive}}
{{#isInactive}}
Your gift card is inactive. Go <a href="/active/{{cardId}}">here</a> to reactivate it.
{{/isInactive}}
于 2013-10-25T14:06:10.017 回答
3

switch 语句将放在 php 中,例如:

在 php

$card_status = null;
switch ($gift_card['FlagStatus']) {
        case 'P': 
            $card_status = "Pending";
            break;
        case 'A':
            $card_status =  "Active";
            break;
        case 'I':
            $card_status = "Inactive";
            break;
    }

render_template('giftcard_stuff', array('card_status'=>$card_status);

在模板中

<div>The status of this gift card is: {{card_status}}</div>

当您尝试将这样的标志放入下拉列表中时,事情会变得更加棘手,在这种情况下,您必须提前写出数组,例如:

$status_dropdown = [
    ['flag_display'=>'Pending', 'flag'=>'P'],
    ['flag_display'=>'Active', 'flag'=>'A'],
    ['flag_display'=>'Inactive', 'flag'=>'I'],
];
于 2013-01-24T23:12:55.903 回答