Php 如何匹配Yii中的字符串?
我被困在这件事上了。。比方说,我有string1和string2(在同一个模型中),其中string1有7个数字,string2有2个数字。 然后我想将它们匹配在一起,其中string1的两个起始数字必须与string2相同。我在model>>中尝试了此代码Php 如何匹配Yii中的字符串?,php,yii,match,substr,Php,Yii,Match,Substr,我被困在这件事上了。。比方说,我有string1和string2(在同一个模型中),其中string1有7个数字,string2有2个数字。 然后我想将它们匹配在一起,其中string1的两个起始数字必须与string2相同。我在model>>中尝试了此代码 public function CekDigit($attribute,$params) { $attribute=substr($this->string1,0,-7); $params=$this->string2; i
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'),
?>
在我编写代码之后,我尝试用23xxxxxxx填充$string1
但是我得到了一个错误,那就是CException:Property model.23没有定义。有人能帮我吗?非常感谢使用您的示例行
$attribute=substr($this->string1,0,-7)代码>
将$attribute设置为23,因此行if($this->$attribute==$params['subject'])
将对照$this->23
检查$params['subject']
试一试
你能在CekDigit()内打印$_POST并复制粘贴结果吗?我想你不知道那里发生了什么。。。请仔细阅读此内容-看起来您在某个阶段将调用$$string1
作为$$string1
。另外,看起来您正在将$params
设置为一个字符串($params=$this->string2
),但随后尝试与数组值进行比较($params['subject']
)
public function CekDigit($attribute, $params)
{
$string1 = substr($this->$attribute, 0, 2);
if ($string1 == $this->string2)
{
$this->addError(‘Error’, $params['message']);
return false;
}
}