【发布时间】:2015-11-30 10:48:56
【问题描述】:
我正在使用 CakePHP 2.6 开发一个应用程序,并且我有一个表单,用户可以在其中设置一系列标志来创建日历事件。
我已设法设置“添加”操作以显示标志,并在验证后在控制器中循环并将值保存到我的表中。这个过程是使用按位完成的。下面的代码示例:
'添加'动作视图:
echo $this->Form->input('flag', array('label' => false, 'type' => 'select', 'multiple' => 'checkbox', 'options' => $flagtypes, 'hiddenField' => false));
'添加'动作控制器:
$flags = 0;
foreach ($data['flag'] as $r) {
$flags |= (int)$r;
}
但是,当标记显示在编辑操作视图中时,我无法将标记的复选框标记为选中。
“编辑”操作视图:
$selected = array($results[0]['BitwiseFlag']);
echo $this->Form->input('flag', array('label' => false, 'type' => 'select', 'multiple' => 'checkbox', 'options' => $flagtypes, 'hiddenField' => false, 'selected' => $selected));
$results[0]['BitwiseFlag'] = 表中的 32。
$flagtypes 数组:
array(2) { [32]=> string(4) "Test" [64]=> string(9) "Testing 2" }
【问题讨论】:
-
您可能想查看Bitmasked Behavior 和article。
标签: arrays cakephp checkbox bit-manipulation selected