0

当尝试提交新的活动记录实例并将其保存到数据库表时,我收到了直接的 PHP 错误消息,没有 AJAX 警告文本,正如我所料。这让我真的很困惑。PHP 错误消息是:

mb_strlen() expects parameter 1 to be string, array given 

它指向 ...Yii1.8\framework\validators\CStringValidator.php 中的第 72 行,即:

 $length=mb_strlen($value, $this->encoding ? $this->encoding : Yii::app()->charset);

然后,在接下来的几行中,PHP 错误继续指向我的 AR 类中的这一行(第 209 行):

205   $AttributesList = $saveArticleHistory->attributes;
206         $article_history->attributes = $AttributesList;
207         $article_history->article_id = $saveArticleHistory->id;
208         $article_history->id = null;         
209         return $article_history->save();

但我的理解是,如果 AR 实例未能保存到数据库,则会引发 Ajax 警告(如果我们在视图中看到该 Ajax 错误消息)。但是这里直接显示警告信息?你能帮我解决这个困惑吗?谢谢你。

4

1 回答 1

0

Yii 不处理 PHP 错误,目前只处理异常。以下是与此问题相关的一些链接:link1link2。对于这种特殊情况,我认为$value在将其传递给mb_strlen.

于 2012-08-18T21:20:18.017 回答