获取Cakephp 3显示布尔值的真/假

时间:2015-09-17 16:52:36

标签: php cakephp cakephp-3.0

使用cakephp 3,我在表中有一个boolean [tinyint(1)],并且编辑和添加模板在表单上有一个复选框,但是如何获取索引和视图模板以显示类似的字符串是/否或是/否而不是1/0。我是否在控制器操作中映射它们,或者是否可以添加到模板中?

3 个答案:

答案 0 :(得分:5)

给出的答案都很好。

我在/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文件中的initialize方法中包含$this->loadHelper('FormatBoolean');,可以在标准约定中使用帮助程序。

然后,您可以在视图中使用帮助,方法是在视图中加入$this->FormatBoolean->yesNo($booleanVariable)$this->FormatBoolean->yesNo($booleanVariable, false)。后一个示例将该字段留空,表示错误响应。

过度破坏?也许......但我认为它适合CakePHP结构,并且它是创建自己的帮助器的一个很好的练习。

我在CakePHP版本3.3.4中使用了帮助程序。希望这可以帮助将来的某个人。

答案 1 :(得分:3)

简单地:

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

答案 2 :(得分:0)

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

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

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