如何停止无脂肪PHP将0转换为空?

问题描述:

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

当我执行上面的代码$frequentFoodLog->value = 1它会自动将0转换为空值。因此,当它在视图输出它显示为空,而不是0如何停止无脂肪PHP将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

我已经发现了一个“溶液”,由在返回之前转换该值。但我宁愿一个更好的:你附加价值之后

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

减法运算不会转换成任何东西在PHP空:它会导致整数或浮点数值...的东西在其他地方可能是mdifying值 –

+0

这就是我开始思考。但奇怪的是,当页面第一次加载时它显示为0,所以它只在更新值时将其更改为空,而不是从数据库中第一次获取它。 – jrquick

+1

是数据库表中配置为NULLable的db字段? – ikkez

测试:

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

我使用无脂肪PHP来管理视图,它使用@而不是$ – jrquick

+0

'@'似乎是某种模板引擎thingy –

+0

好的,所以我删除了该通知。 – vaso123

的PHP代码模板中使用{??},而不是{{}}。

{{ @array.key }} 

{~ echo $array['key'] ~}