我在验证用户中使用xammp v3.2.2 时出现了此错误:
count(): Parameter must be an array or an object that implements Countable
我不知道此错误取决于xampp,yii2或php v7.2.3。
in C:\xampp\htdocs\payesh\vendor\yiisoft\yii2\validators\UniqueValidator.php at line 136
if ($this->modelExists($targetClass, $conditions, $model)) {
if (count($targetAttribute) > 1) { //error mentions here
$this->addComboNotUniqueError($model, $attribute);
} else {
$this->addError($model, $attribute, $this->message);
}
}
}
这是我的用户模型:
public function signup() {
if ($this->validate()) { // the error mentions here too
$user = new User();
$user->username = $this->email;
$user->email = $this->email;
if ($user->save(false)) {
return $user;
}
}
此错误页面图片可能有助于您更好地理解:
错误页面的其余部分:
我该怎么办?
答案 0 :(得分:1)
您需要升级到Yii2的最新版本(至少为2.0.13)-在2.0 13版本中与PHP 7.2的兼容性得到了显着改善,请参见this PR。
但是通常,如果您使用的是最新版本的PHP,则应使用Yii的最新版本-使用过时的框架版本和最新的PHP版本可能会带来很多问题。尤其是PHP 7.2带来了许多BC中断,并且在此版本中有很多事情被破坏。