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