我想创建一个我想在CakePHP中更新的字段的白名单。我知道我可以在调用Model :: save()时传递一个fieldList数组,但这不是我正在寻找的。我想要的是每个模型都“发布”有效字段的列表,所以如果我调用Model :: save()方法而不使用fieldList并且数据不能更新(如ownerId),那么不会被更新。如何在CakePHP模型中创建可更新字段的白名单?
我该怎么做才能得到这种行为?也许可以在每个模型中重写Model :: save方法以在“原始”Model :: save中调用白名单?我认为这是一个好主意,因为我不会污染所有带有大量重复白名单的控制器...
感谢您的帮助!
这听起来像是一个行为的用例:http://book.cakephp.org/2.0/en/models/behaviors.html – dhofstet
你确定这一定是一种行为吗?每个字段的白名单必须不同,并且必须为所有应用的模型完成此操作... –
我不确定我是否获得了您想要实现的内容。你想“锁定”某些领域从未被更新?如果您不在表单中为其添加字段,则字段将不会更新。如果您只想在表单中显示数据,只需将该字段设置为禁用,即显示数据,但不会在$ this-> request-> data中设置,因此不会更新。 – Oldskool