我想保存除了一些排除的字段以外的所有字段。我知道我可以这样做
$this->Blah->save($this->data,false,$fieldList)
其中$ fieldList包含表的所有数据字段但这些我不想保存。我有一些具有maaany数据字段的表,我不想在每个控制器操作中从头开始编写整个列表(是的,不应保存的字段因操作而异)。此外,它看起来凌乱和混乱。 cakePHP是否为这种情况提供了现成的东西?如果没有,我想,我必须通过向每个控制器添加$ fieldList属性并执行类似的操作来实现它(丑黑客在一起的溶液):
$tmp = $fieldList;
unset(array_search('fieldtoexclude', $tmp));
$this->Blah->save($this->data,false,$tmp);
最好的问候
答案 0 :(得分:1)
function blacklist($blackList = array()) {
return array_diff(array_keys($this->schema()), $blackList);
}
工作
看看: http://www.dereuromark.de/2010/09/21/saving-model-data-and-security/ 详情
答案 1 :(得分:0)
如果字段列表从一个操作变为另一个操作,那么您正在寻找一个可以读懂您的想法的自动化功能。蛋糕不提供!
在某个地方,您必须说明要排除哪些字段,并且以明确的方式做到这一点会使您的代码更易于维护。
如果它只是一个控制器,则将列表定义为类变量,或者在模型上为保存操作创建子类。