Уникальные правила модели Yii2 для комбинации нескольких атрибутов - PullRequest
0 голосов
/ 11 сентября 2018

Как я могу указать уникальное правило в моих моделях для комбинации нескольких атрибутов?Мне нужно правило, которое не позволяет вставлять записи с одинаковыми комбинациями FIELD100, FIELD3

return [
    [['FEETYPE_F_V_R_','FIELD32','IS_CUSTOMER_EXPENSE','IS_BANK_EXPENSE','IS_BANK_EXPENSE','FIELD100'], 'required'],
    [['ID', 'ACTIVE', 'APPROVED', 'REWORKED', 'IS_CUSTOMER_EXPENSE', 'IS_BANK_EXPENSE', 'IS_BANK_EXPENSE'], 'integer'],
    [['AMOUNT'], 'number'],
    [['REWORKEDON'], 'safe'],
    [['FIELD3', 'FIELD32'], 'string', 'max' => 10],
    [['FEETYPE_F_V_R_', 'FIELD24'], 'string', 'max' => 2],
    [['FIELD100', 'CREATEDBY', 'APPROVEDBY', 'REWORKEDBY'], 'string', 'max' => 50],
    [['CREATEDDATE', 'APPROVEDDATE'], 'string', 'max' => 7],
    [['MEMOCODE'], 'string', 'max' => 20],
    [['ID'], 'unique'],
];

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете использовать CompareValidator в вашей модели.

public function rules()
{
    return [ 
        [
            'FIELD100',
            'compare',
            'compareAttribute' => 'FIELD3',
            'operator' => '!=',
            'message' => 'Both values can not be the same'
        ]
    ];
}

Для получения дополнительной информации см. документы

...