2017-08-28 40 views
0

我正在使用yii框架。我已经提出了一个条件,用户不允许插入相同的数据。Yii不允许插入相同的数据

这里是我的代码

模型

public function rules() 
{ 
    // NOTE: you should only define rules for those attributes that 
    // will receive user inputs. 
    return array(
     array('DEP_CD', 'length', 'max'=>5), 
     array('DEP_CD', 'required'), 
     array('DEP_CD', 'cekPK'), 
    ); 
} 

public function cekPK() 
{ 
    $model = self::findByPk(array($this->DEP_CD)); 
    if ($model) 
     $this->addError('field1', 'Data sudah ada'); 
} 

此代码的工作不容许用户插入相同的数据。但是当他们编辑/更新数据时,它会一直说数据是存在的。我需要允许用户编辑而不是插入相同的数据只

感谢

回答

1

一个解决可能是:

public function cekPK() 
{ 
    if ($this->isNewRecord) 
    { 
     $model = self::findByPk(array($this->DEP_CD)); 
     if ($model) 
      $this->addError('field1', 'Data sudah ada'); 
    } 
} 
+0

它的工作原理,帮助@保罗 – Trainee

+0

@Trainee真的很好..谢谢不用谢。 :) – paul

+0

如果我想要做这样的事情,但有两个条件 例如:我想在'01-08-2017和05-08-2017之间创建新的日期。用户可以插入一个相同的日期,只要它们不相同即可。该代码是否会起作用?谢谢@paul – Trainee