正如我在其他帖子中读到的,与第一个模型有关系的表的id必须由表单中的隐藏字段设置。保存hasOne关系中的相应数据
echo $form->input('Gallery.id', array('type'=>'hidden', 'value'=>$showcase['Gallery']['id']));
(见Update hasone relation behaves strangely (cakephp)问题)
但不是危险的,因为任何人都可以编辑这个隐藏字段值和其他数据集将被更新。
尝试更新整个数据集时使用与hasOne/belongsTo关系关联的两个模型来避免此类安全问题的最佳选择是什么?
THX
最佳 斯特凡
同意,这是有风险的。你可以密码吗? – njzk2
可以做的是读取第一个模型的数据并设置第二个数据的ID: $ userdata = $ this - > User - > read(null,$ id); $ this - > request - > data ['Usersetting'] ['id'] = $ userdata ['Usersetting'] ['id']; 但多数民众赞成多一个查询。 – SteMa