使用 cakephp 3,我在表中有一个 bool 值 [tinyint(1)],编辑和添加模板在表单上有一个复选框,但是如何让索引和 View 模板显示一个字符串真/假或是/否,而不是 1/0。我是否将它们映射到 Controller 操作中,或者是否有可以添加到模板的选项?
最佳答案
给出的答案都很好。
我在 /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) 在 View 中使用 Helper
在你看来。后一个示例将在错误响应中将该字段留空。
矫枉过正?也许……但我认为它适合 CakePHP 结构,而且它是创建您自己的助手的一个很好的练习。
我在 CakePHP 3.3.4 版中使用了助手。希望这对将来的某人有所帮助。
关于php - 获取 Cakephp 3 显示 bool 值的真/假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635856/