2012-10-05 28 views
0

正如我在其他帖子中读到的,与第一个模型有关系的表的id必须由表单中的隐藏字段设置。保存hasOne关系中的相应数据

echo $form->input('Gallery.id', array('type'=>'hidden', 'value'=>$showcase['Gallery']['id'])); 

(见Update hasone relation behaves strangely (cakephp)问题)

但不是危险的,因为任何人都可以编辑这个隐藏字段值和其他数据集将被更新。

尝试更新整个数据集时使用与hasOne/belongsTo关系关联的两个模型来避免此类安全问题的最佳选择是什么?

THX

最佳 斯特凡

+1

同意,这是有风险的。你可以密码吗? – njzk2

+0

可以做的是读取第一个模型的数据并设置第二个数据的ID: $ userdata = $ this - > User - > read(null,$ id); $ this - > request - > data ['Usersetting'] ['id'] = $ userdata ['Usersetting'] ['id']; 但多数民众赞成多一个查询。 – SteMa

回答

0

您可以切换到使用UUID。只需要将你的主键和外键改为char(36),其余的就可以完成。