Php count():参数必须是在Yii2中实现可数的数组或对象
我在validate user(验证用户)中使用xammpv3.2.2时出现以下错误:Php count():参数必须是在Yii2中实现可数的数组或对象,php,yii2,xampp,Php,Yii2,Xampp,我在validate user(验证用户)中使用xammpv3.2.2时出现以下错误: count():参数必须是实现可计数的数组或对象 我不知道这个错误是否取决于xampp、yii2或PHPV7.2.3 in C:\xampp\htdocs\payesh\vendor\yiisoft\yii2\validators\UniqueValidator.php at line 136 if ($this->modelExists($targetClass, $conditio
count():参数必须是实现可计数的数组或对象
我不知道这个错误是否取决于xampp、yii2或PHPV7.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;
}
}
此错误页面的图片可能有助于更好地理解:
错误页的其余部分:
我该怎么办?您需要升级到Yii2的最新版本(或至少2.0.13)-与PHP 7.2的兼容性在2.0 13版本中得到了显著提高,请参阅
但一般来说,如果您使用的是最新版本的PHP,那么您应该使用最新版本的Yii——将过时的框架版本与最新的PHP版本一起使用可能会带来很多问题。特别是PHP7.2带来了许多BC中断,在这个版本中有许多东西被中断。什么是$targetAttribute?错误是它需要一个数组,但ist不是。请在应用了唯一性的位置显示验证validator@DieterKr我不知道,现在开始了yii2@NitinPund你能告诉我更多吗?你是说我的模型规则吗?是的,你的模型规则你确定如果我升级我的yii2,我的问题将被删除吗?是的,你可以在链接PR中看到,这一行在2.0.13版本中被更改。是的,它起作用了,非常感谢。我升级到Yii 2.0.11,问题就解决了。当然,在第一次升级中,作曲家的更新有问题,但在第二次升级中。