我想在保存之前验证并查看store_id / period是否存在。但奇怪的是,它正在验证整个store_idS,但它假设只能看到其中一个id。
它忽略了store_id,并检查整个数据。因此,当找到日期时,它会返回与该日期相关的所有内容,而忽略store_id。我不是在寻找一切,我只是想要商店。
模特中的:
public function pExists($attribute, $params)
{
$criteria=new CDbCriteria;
$criteria->compare('store_id',$this->store_id); //<--it's ignoring this...
$criteria->addBetweenCondition('date_from', $this->date_from, $this->date_to);
$criteria->addBetweenCondition('date_to', $this->date_from, $this->date_to, 'OR');
$model = $this->exists($criteria);
if (!empty($model)) {
$this->addError($attribute, "Promotional Fee already exists in period.");
return false;
}
}
答案 0 :(得分:1)
检查
$criteria->addBetweenCondition('date_from', $this->date_from, $this->date_to);
$criteria->addBetweenCondition('date_to', $this->date_from, $this->date_to, 'OR');
$criteria->compare('store_id',$this->store_id);