Как я могу сопоставить строки в Yii? - PullRequest
0 голосов
/ 02 марта 2012

Я застрял на этом .. Допустим, у меня есть string1 & string 2 (в той же модели), у которого string1 есть 7 цифр и 2 цифры string2. тогда я хочу сопоставить их вместе, где 2 из начальных цифр string1 должны быть такими же, как string2. Я пробовал этот код в модели >>

public function CekDigit($attribute,$params)
{

$attribute=substr($this->string1,0,-7);
$params=$this->string2;

if($this->$attribute==$params['subject'])
{
$this->addError(‘Error’, $params['message']);
return false;
}
}

пока в правилах ставлю этот код >>

    <?php

array('string1','cekdigit','message'=>'the code is unmatched','subject'),

?>

После того, как я сделал этот код, я попытался заполнить $ string1 значением 23xxxxxxx. но я получил ошибку, которая является CException: свойство model.23 не определено. Кто-нибудь может мне помочь? Большое спасибо

1 Ответ

0 голосов
/ 13 марта 2012

Используя ваш пример, строка $attribute=substr($this->string1,0,-7); установит $ attribute в 23, поэтому строка if($this->$attribute==$params['subject']) проверим $params['subject'] против $this->23.

Попробуйте

public function CekDigit($attribute, $params)
{ 
    $string1 = substr($this->$attribute, 0, 2); 
    if ($string1 == $this->string2)
        {
        $this->addError(‘Error’, $params['message']);
        return false;
    }
}
...