CakePHP模型 - > save():保存除了一些排除的字段以外的所有字段

时间:2010-10-05 13:13:40

标签: php cakephp cakephp-1.3

我想保存除了一些排除的字段以外的所有字段。我知道我可以这样做

$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);

最好的问候

2 个答案:

答案 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)

如果字段列表从一个操作变为另一个操作,那么您正在寻找一个可以读懂您的想法的自动化功能。蛋糕不提供!

在某个地方,您必须说明要排除哪些字段,并且以明确的方式做到这一点会使您的代码更易于维护。

如果它只是一个控制器,则将列表定义为类变量,或者在模型上为保存操作创建子类。