Yii2 如何设置3属性是模型的唯一属性

Yii2 如何设置3属性是模型的唯一属性,yii2,unique,rules,Yii2,Unique,Rules,我有一个带有上述属性的模型TblPayroll,我想检查'fk\u int\u emp\u id','fk\u int\u payroll\u month','fk\u int\u payroll\u year'的唯一性。若这三个字段已经存在于数据库中,则不应插入。至少有一个是不同的,它应该插入。如何检查唯一性 public function attributeLabels() { return [ 'pk_int_payroll_id' =>

我有一个带有上述属性的模型
TblPayroll
,我想检查
'fk\u int\u emp\u id'
'fk\u int\u payroll\u month'
'fk\u int\u payroll\u year'
的唯一性。若这三个字段已经存在于数据库中,则不应插入。至少有一个是不同的,它应该插入。如何检查唯一性

public function attributeLabels()
    {
        return [
            'pk_int_payroll_id' => 'Payroll Id',
            'fk_int_emp_id' => 'Employee',
            'vchr_worked_hours' => 'Worked Hours',
            'vchr_actual_hours' => 'Actual Hours',
            'fk_int_payroll_month' => 'Month',
            'fk_int_payroll_year' => 'Year',
        ];
    }

public function rules()
    {
        return [
            [[ 'vchr_worked_hours', 'vchr_actual_hours', 'fk_int_payroll_month', 'fk_int_payroll_year'], 'required'],

            //[['fk_int_emp_id', 'fk_int_payroll_year','vchr_worked_hours','vchr_actual_hours'], 'integer'],
            //[['fk_int_emp_id','fk_int_payroll_month','fk_int_payroll_year'], 'string', 'max' => 50],
            [['fk_int_emp_id'], 'exist', 'skipOnError' => true, 'targetClass' => TblEmployee::className(), 'targetAttribute' => ['fk_int_emp_id' => 'pk_int_emp_id']],
            [['fk_int_payroll_month'], 'exist', 'skipOnError' => true, 'targetClass' => TblPayrollMonth::className(), 'targetAttribute' => ['fk_int_payroll_month' => 'pk_int_payroll_month_id']],
            [['fk_int_payroll_year'], 'exist', 'skipOnError' => true, 'targetClass' => TblPayrollYear::className(), 'targetAttribute' => ['fk_int_payroll_year' => 'pk_int_payroll_year_id']],
        ];
    }
试试这个

[['fk_int_emp_id', 'fk_int_payroll_month', 'fk_int_payroll_year'], 'unique', 'targetAttribute' => ['fk_int_emp_id', 'fk_int_payroll_month', 'fk_int_payroll_year'], 'message' => 'The combination of .... has already been taken.'],

@SCAISEDGE检查此项您已在“规则而非标签,显示美国规则”部分设置了唯一属性。请检查编辑的属性,我需要插入此模型,但在插入“fk_int_emp_id”、“fk_int_工资单月”、“fk_int_工资单年”时,它应在同一时间唯一。如果这三个字段中有任何不同之处,则应插入。。。