2012-05-02 17 views
1

在我的edit.ctp中我有一个选择框,我不需要用户更改。所以我把数组(禁用=> true)。但是这个字段是不是来时保存已禁用的字段

pr($ this-> data);并在保存时显示错误。

有什么选择来解决这个问题....

谢谢。

+0

残疾人领域没有得到发布,您可以使用隐藏字段传递后 –

回答

0

你可以做现场只读,使用户不能改变它,或者使用一些隐藏字段后,你想要的数据,或者你可以使用一些CSS,就像visibility:hidden的,使用户不要看到它,但它会被张贴。

echo this->Form->input('patient_id',array('type'=>'hidden')); 

您可以使用一些其他的名字在输入和控制器检查,或者你可以完全从视图* 强大的文本除去选择元素*(因为,它并不需要为用户不需要改变它)

+0

回声这个 - >形式 - >输入( 'patient_id',阵列( '类型'=> '隐藏')); echo $ this-> Form-> input('patient_id',array('disabled'=>'true'));当我像上面这样编码时,也没有发布patient_id。 – alexkd

+0

对不起,这是错误的。现在正确 – alexkd

+0

如果您使用隐藏字段,用户仍然可以轻松编辑它们!确保使用某种形式的篡改保护来防止这种情况(请参阅:SecurityComponent)。 – jeremyharris

4

如果你知道数据的价值,你可以在控制器上编辑它。

$this->request->data['ModelName']['fieldName'] = value;

UPDATE

编辑它像
echo $this->Form->input('patient_id',array('type'=>'select', 'readonly' => 'readonly'));

+0

它显示为只读。但用户仍然可以从选项中进行选择。 – alexkd

+0

这就是我正在寻找的东西。显示信息并按原样保存。谢谢。 – pctroll