我在cakephp的注册表格中有以下表格字段。我想让它“硬编码”,因此用户无法编辑它
echo $form->input('name', array('label' => __('Name *', true)));
答案 0 :(得分:2)
然后不要将其添加到表单中。 那些字段应该添加到控制器中(甚至在之前/之前的模型层之前),然后在保存之前:
if ($this->request->is('post')) {
$this->User->create();
// add the content before passing it on to the model
$this->request->data['User']['status'] = 1;
if ($this->User->save($this->request->data)) {
...
}
}
请参阅“默认值 - 隐藏”here。
答案 1 :(得分:0)
您可以设置readonly
属性:
echo $form->input('name', array('label' => __('Name *', true), 'readonly' => true));
但是,这只会影响用户界面,因此您仍然需要应用标记的答案,以确保用户不会更改该值。
答案 2 :(得分:0)
两个选项:
如果您希望该字段从设置的那一刻起是只读的。使用白名单。这样 - 用户是否提交字段无关紧要。蛋糕不会保存它。
$white_list = array('title', 'category');
$this->Model->save($data,$validate,$white_list);
另一个解决方案是标记编码:
$this->request->data['User']['status'] = 1;
if ($this->User->save($this->request->data)) {
...
}
任何解决方案都应混合UI指示,表示该字段不会更改。一个好的用户体验将不允许它在第一位。