如何在更新

时间:2015-10-10 10:03:57

标签: yii2 yii2-validation

我有书桌和isbn字段。 当用户更新现有图书时,如果他更改了isbn代码并保存,则应将isbn检查为唯一,否则必须跳过唯一验证。

有独特的验证,但是检查甚至isbn在更新时都没有更改。

我有一个想法。将一个变量添加到Book模型以保持isbn的旧值。更新记录时,将比较旧值和新值。如果更改,将运行自定义验证。

这是最佳方式还是有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

它的工作方式如下,您正在设置:

['a1', 'unique']

并且由于您在表格中没有重复的值。

如果你想跳过你的isbn的验证检查[当用户更新时,我不知道为什么你会这样做?你想要两本相同的isbn书吗? ],用一些东西制作SCENARIO:

In update proecess if[book isbn is changed] 
set scenario 1;
In update process if[book isbn isn`t changed]
set scenario 2;

in create process use deafult scenario