如何阻止Fat-Free PHP将0转换为null?

时间:2016-05-23 14:08:50

标签: php fat-free-framework

$frequentFoodLog->value = $frequentFoodLog->value - 1;

当我用$frequentFoodLog->value = 1执行上面的代码时,它会自动将0转换为null。因此,当它在视图中输出时,它显示为null而不是0.

我试过了:

$frequentFoodLog->value = (int) $frequentFoodLog->value - 1;

同样,在视图中:

{{ is_null(@frequentFoodLog->value) ? '0' : @frequentFoodLog->value}}

<check if="{{ is_null(@logValue) }}">
   <set logValue="0"/>
</check>

没有运气。

有关如何解决此问题的任何想法?模型上的属性设置为int:

@property int    value

并以INT(11)的形式存储在MySql数据库中。

除了在视图中显示不正确(和我的调试器)之外,当我对它执行关节炎时它仍然作为0,并且作为0保存到数据库。

我找到了一个&#34;解决方案&#34;,通过在返回之前转换该值。但我更喜欢更好的一个:

print json_encode(
     [
         'ffid'   => $ffid,
         'action' => $action,
         'value'  => is_null($frequentFoodLog->value) ? '0' : $frequentFoodLog->value,
         'carbs'  => $carbs
     ]
);

2 个答案:

答案 0 :(得分:0)

在附加值后测试它:

if (is_null($frequentFoodLog->value)) {
    $frequentFoodLog->value = 0;
}

答案 1 :(得分:0)

对于模板中的php代码,请使用{~~}代替{{}}。

<dependency>
  <groupId>a.group</groupId>
  <artifactId>a.artifact</artifactId>
  <version>a.version</version>
  <exclusions>
    <!--  STAX comes with Java 1.6 -->
    <exclusion>
      <artifactId>stax-api</artifactId>
      <groupId>javax.xml.stream</groupId>
    </exclusion>
    <exclusion>
      <artifactId>stax-api</artifactId>
      <groupId>stax</groupId>
    </exclusion>
  </exclusions>
<dependency>

<dependency>
    <groupId>javax.xml.stream</groupId>
    <artifactId>stax-api</artifactId>
    <version>1.0-2</version>
</dependency>