如何在Yii中匹配字符串?
问题描述:
我被困在这..我们说,我有string1 &字符串2(在同一模型中),其中string1有7位数字和string2的2位数字。 然后我想匹配它们在一起,其中string1的开始数字中的2必须与string2相同。我想在这个模型代码>>如何在Yii中匹配字符串?
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'),
?>
之后我做了代码,我试图填补$字符串1与23xxxxxxx ,但我得到一个错误,即CException:属性model.23未定义。任何人都可以帮我吗?非常感谢
答
使用你的榜样行$attribute=substr($this->string1,0,-7);
将$属性设置为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;
}
}
可以打印$ _ POST内CekDigit()和复制粘贴的结果。 – rajmohan 2012-03-02 04:58:21
我不认为你知道那里发生了什么...请仔细阅读这个 - http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/ – 2012-03-02 05:49:32
看起来像你的'在某个阶段重新调用'$ string1'作为'$$ string1'。另外,看起来你将'$ params'设置为一个字符串('$ params = $ this-> string2'),但是你试图与一个数组值相比较('$ params ['subject']' ) – Avanche 2012-03-02 09:43:47