我目前在TYPO3 7 / Extbase中实现了一个用户权限对象。根据(简化):
将不同的权限映射为INT的位'permissions' => array(
'label' => 'permissions'
'config' => array(
'type' => 'check',
'items' => array(
array('Permission 1', ''),
array('Permission 2', '')
)
)
),
后端的修改工作完美无缺,标志正确存储为数据库中的相应位。
如何在前端实现类似的行为?是否有(正确的)方法将位值映射到流体复选框?
答案 0 :(得分:0)
您可以添加设置或返回位的自定义setter / getter函数。
在您的模型中:
/**
* @var int
*/
protected $permissions;
添加如下内容:
/**
* @return int
*/
public function getPermission2() {
return $this->permissions & 2 > 0 ? 1 : 0;
}
/**
* @param int $permission2
*/
public function getPermission2($permission2) {
if ($permission2) {
$this->permissions = $this->permissions | 2;
} else {
$this->permissions = $this->permissions ~ 2;
}
}
然后,您可以parameter="permission2"
或f:form.checkbox
中的{object.permission2}
用于其他流畅的观看者。
PS:对于权限1,您需要将2
更改为1
,对于权限3,则为4