【问题标题】:Cakephp saving data with validation isUniqueCakephp 通过验证保存数据 isUnique
【发布时间】:2011-11-22 11:54:26
【问题描述】:

我正在尝试使用具有验证 isUnique 规则但尝试通过以下方法更新时出现问题的字段保存数据。

$this->Model->id = 1; 
$this->Model->save($this->data);

如果我执行上述操作,则会生成验证错误,提示我只允许拥有唯一值,但我正在尝试更新它。

有没有办法解决这个问题?

【问题讨论】:

  • 如果将数据数组中的 id 一起传递会发生什么?

标签: php cakephp


【解决方案1】:

对我来说这看起来不错;当手动设置为 id 时,Cake 将尝试使用主键更新记录。

使用所谓的“唯一”数据在您的表中进行搜索;看看是否可以找到任何其他结果。在引入 isUnique 验证规则之前,您可能有重复的数据正在使用中。

您是否在循环中进行此更新?

您可以尝试将模型中的on 验证规则更改为create,以防止它在更新时触发;但我不确定这是否必要;另外,您还可以update 重复信息的记录,从而达到目的!

var $validate = array(
    'fieldName1' => array(
        'rule' => 'isUnique',
        'required' => true,
        'allowEmpty' => false,
        'on' => 'create', // here
        'last' => false,
        'message' => 'Your Error Message'
    )
);

【讨论】:

    【解决方案2】:

    只需将 id 与数组一起传递即可。喜欢:

    $this->create();
    $data['id'] = $id;
    $this->save($data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2012-05-26
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多