我有实体Floor和LeaseTerm。楼层可以有很多租赁条款。
在我的LeaseTerm CREATE表单中,我有一个隐藏的floor_id字段。
我的问题是:如何有效地阻止用户自己更改floor_id字段并为他不拥有的楼层创建LeaseTerms(每层都拥有它的所有者)?
答案 0 :(得分:3)
从概念上讲,'如何'在提交时验证floor_id,确保当前用户拥有/有权访问发言权。从理论上讲,即使他们确实改变了它,只要它仍然是他们可以访问的id,操作可能仍然有效(如果不是,则需要对提交上下文进行额外的验证)。
在Symfony 2中作为一个具体实现,可以直接在控制器中使用逻辑来实现,或者可以在“Data Transformer”和/或Custom Validator的帮助下实现。
希望这有帮助。