【问题标题】:Phalcon Volt check_field with if else statement for checkedPhalcon Volt check_field 与 if else 语句进行检查
【发布时间】:2015-12-12 23:33:54
【问题描述】:

我有一个正在尝试在 Volt 中构建的复选框:

<input type="checkbox" class="myClass" data-size="small" data-type="{{ type.getType() }}">

所以现在我通常会这样写

{{ check_field( 'class':'my class', 'data-size':'small', 'data-model-pk': ''~ AclGroup.id_group ) }}'

但是我想做这样的事情:

<input type="checkbox" class="myClass" {% if AclGroup.flg_active == 1 %} checked="" {% endif %} data-size="small" data-type="{{ type.getType() }}">

但我不知道如何在{{ }} 中做一个声明

我尝试突破{{ }}{% %}{{ }} 和其他一堆东西,但我找不到任何涵盖它的文档,而且我尝试过的任何东西都不起作用。有什么想法吗?

【问题讨论】:

  • 请提供您想要实现的html版本
  • 我认为如果AclGroup.flg_active 是布尔值,您可以像'checked' : AclGroup.flg_active 一样使用它。 Phalcon 不会添加 checked 属性是假的。

标签: php phalcon volt


【解决方案1】:

一行代码:

{{ check_field( 'class':'my class', 'data-size':'small', 'data-model-pk':  AclGroup.id_group, 'checked':(AclGroup.flg_acive == 1 ? true : null) ) }}'

有趣的是,这也会起作用:

{{ check_field( 'class':'my class', 'data-size':'small', 'data-model-pk':  AclGroup.id_group, 'checked':(AclGroup.flg_acive == 1 ? false : null) ) }}'

但我认为第一个更合乎逻辑。

【讨论】:

  • 赞成,因为这确实应该是公认的答案,因为它演示了复选框标记检查方法的正确使用。请注意,必须使用null,因为空字符串、0 或false 将始终导致复选框被选中。
【解决方案2】:

您始终可以按照您在示例中给出的方式保留它 - 毕竟,Volt 有时只是生成 Html 的好方法。

但是,我会这样做

{% if AclGroup.flg_acive == 1 %}
    {{ check_field( 'class':'my class', 'checked': "", 'data-size':'small', 'data-type': type.getType() ) }}
{% else %}
    {{ check_field( 'class':'my class', 'data-size':'small', 'data-type': type.getType() ) }}
{% endif %}

据我所知,无法在 echo - {{...}} 中使用 if 语句,因此您需要有 2 个回显并使用 if-else 代替。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-19
    • 2015-05-16
    • 2011-05-28
    • 1970-01-01
    • 2015-03-13
    • 2017-08-29
    • 1970-01-01
    • 2019-04-09
    相关资源
    最近更新 更多