获取Cakephp 3显示布尔值的true/false


Get Cakephp 3 display true/false for booleans

使用cakephp 3,我在表中有一个布尔值[tinyint(1)],编辑和添加模板在表单上有一个复选框,但是我如何获得索引和视图模板来显示一个字符串,如真/假或是/否而不是1/0。我是否可以在控制器动作中映射它们,或者是否有一个选项可以添加到模板中?

给出的答案都很好。

我在/src/View/Helper/FormatBooleanHelper.php中创建了一个Helper类,如下所示:

<?php
/*
* FormatBooleanHelper
*
* CakePHP Helper created to format boolean values in either Yes/No or True/False text.
* By:  Jared Testa
*
*/
namespace App'View'Helper;
use Cake'View'Helper;
class FormatBooleanHelper extends Helper
{
/**
 * yesNo method
 *
 * @param boolean| $value boolean
 * @return string
 *
 */
public function yesNo($value, $showNo = true) {
    return ($value) ? "Yes" : (($showNo) ? "No" : "");
}
/**
 * trueFalse method
 *
 * @param boolean| $value boolean
 * @return string
 *
 */
public function trueFalse($value, $showFalse = true) {
    return ($value) ? "True" : (($showFalse) ? "False" : "");
}
}
?>

通过在AppView.php文件的初始化方法中包含$this->loadHelper('FormatBoolean');,在标准约定中使用该帮助器。

然后通过在视图中包含$this->FormatBoolean->yesNo($booleanVariable)$this->FormatBoolean->yesNo($booleanVariable, false)来使用视图中的Helper。后一个示例将在错误响应中留下空白字段。

过度?也许……但我认为它适合CakePHP结构,并且它是创建您自己的helper的一个很好的练习。

我正在使用CakePHP版本3.3.4中的helper。希望这对将来的人有所帮助。

简写:

<?= ($var)?'yes':'no' ?>

在显示数据时,可以选择显示字符串而不是int。这是一种简化的方法,因为您不需要提供任何代码或其他信息:

在视图中,$ itrue是布尔值:

<?php if($isTrue){echo "true";}else{echo "false";} ?>

我添加了(对于底部,jtesta答案)方法来获得图形表示-使用Foundation Icon Fonts 3:

public function checkX($value, $showFalse = true) {
    return ($value) ? '<i class="fi-check"></i>' : (($showFalse) ? '<i class="fi-x"></i>' : '');
}