检查一个表的日期是否与yii中的另一个表重叠

时间:2014-03-28 16:31:19

标签: yii

我有两张桌子(A和B)彼此没有关系。 (我猜他们的关系将是一个产品ID,它在另一个表中(表C)??)A和B都有一个来自和迄今。我不希望用户在这两个表格中提交重叠日期。因此,如果表A的日期为3/1到6/1,则表B在这两个日期或重叠日期之间不应该有任何关系。有没有办法在验证中检查这个?

我有类似的东西,但它只是每次提交,而我正在寻找那个错误。

public function tableADateExists($attribute, $params)
{
    $criteria = new CDbCriteria;    
    $a = new tableA();

    $criteria->compare('product_id',$this->main_pid,true,'OR');
    $criteria->compare('product_id',$this->target_pid,true,'OR');
    //product_id in table A
    $criteria->addBetweenCondition('start_date', $this->effective_from_date, $this->effective_to_date, 'OR');
    $criteria->addBetweenCondition('end_date', $this->effective_from_date, $this->effective_to_date);
    //start_date and end_date in table A, the other in table B
    $model = $a->exists($criteria);
    if (!empty($model)) {
        $this->addError($attribute, "Item already exists in period.");
        return false;
    }
}

0 个答案:

没有答案