تالار گفتمان nCIS.ir

نسخه‌ی کامل: unique کردن همزمان دو فیلد در yii و تولید ارور
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام.

فرض کنید من نمیخوام همزمان یه نفر با یک ایمیل و شماره موبایل تو سایتم عضو بشه و بخوام بگم اگه تو یک رکورد اگه این ایمیل و موبایل به صورت همزمان وجود داشت ارور تولید بشه.
جدا جدا رو میتونم چک کنم اما میخوام در صورتی که هر دوتاشون در یک رکورد مشترک بودن ارور بده
array('mobile', 'unique','message' =>("این شماره از قبل در سیستم موجود است")),
array('email', 'unique','message' =>("این ایمیل از قبل در سیستم موجود است")),
میتونید از ولیدیتورهای دستی استفاده کنید. مثال:
public function rules()
{
    // ...
    array('mobile, email', 'uniqueME'),
}

public function uniqueME($attribute, $params)
{
    if(!$this->{$attribute}) {
        $this->addError($attribute, $this->getAttributeLabel($attribute) . ' نمی تواند خالی باشد.');
        return;
    }
    if(self::model()->exists('LOWER(email)=:email AND mobile=:mobile', array(':email' => strtolower($this->email), 'mobile' => $this->mobile))) {
        $this->addError($attribute, 'کاربری با این ایمیل و موبایل در سیستم وجود دارد.');
    }
}