当非空时,在控件内显示字段

时间:2013-09-30 19:04:31

标签: silverstripe

我有以下代码:

  <% control StaffMembers %>
    <li>
        Name: <h2>$Name</h2>
    </li>
    <% end_control %>

我想问一下,如果Name文本字段不为null或为空,我将如何显示它。 控件中的if语句不起作用:

 <% control StaffMembers %>
   <% if $Name %>
     <li>
        Name: <h2>$Name</h2>
    </li>
   <% end_if %>
<% end_control %>

谢谢

1 个答案:

答案 0 :(得分:2)

您的代码看起来是正确的。在控件中调用if语句应该有效。

我还建议在你的控件周围添加一个if语句,以便在循环之前检查是否有StaffMembers

<% if $StaffMembers %>
    <ul>
    <% control $StaffMembers %>
        <% if $Name %>
        <li>
            Name: <h2>$Name</h2>
        </li>
        <% end_if %>
    <% end_control %>
    </ul>
<% end_if %>

或者在Silverstripe 3中使用loop代替control

<% if $StaffMembers %>
    <ul>
    <% loop $StaffMembers %>
        <% if $Name %>
        <li>
            Name: <h2>$Name</h2>
        </li>
        <% end_if %>
    <% end_loop %>
    </ul>
<% end_if %>