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

use*_*872 3 php cakephp cakephp-3.0

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

小智 6

给出的答案都很好.

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

<?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" : "");
}

}

?>
Run Code Online (Sandbox Code Playgroud)

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

然后,您可以通过在视图中包含$this->FormatBoolean->yesNo($booleanVariable)$this->FormatBoolean->yesNo($booleanVariable, false)在视图中使用帮助器.后一个示例将该字段留空,表示错误响应.

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

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