Yii2获取model->save()错误信息中的第一条的方法

  •   
  • 13417
  • PHP
  • 31
  • super_dodo
  • 2016/12/13

在Yii2中经常需要对数据表的新增更新或者删除。这个时候就经常用到$model->save()的方法,且model里面的rule会对这些提交的数据进行验证。验证不通过的话,会抛出提示的信息。以下这个方法就是得到获取Model错误信息中的 第一条,无错误时返回 null 直接上代码。

//获取 Model 错误信息中的 第一条,无错误时 返回 null
public static function getModelError($model) {
	$errors = $model->getErrors();    //得到所有的错误信息
	if(!is_array($errors)) return '';
	$firstError = array_shift($errors);
	if(!is_array($firstError)) return '';
	return array_shift($firstError);
}


//使用示例如下
$model = new User();
$model->name = $name;
$model->nick_name = $nick_name;
$model->phone = $phone;
$model->sex = $sex;
$model->isNewRecord = true;		//此语句可省略
if(!$model->save()){			//保存不成功
	throw new \RuntimeException('保存失败.'.$model::getModelError($model));
}

故事的开头总是这样,适逢其会,猝不及防。故事的结局总是这样,花开两朵,天各一方。——张嘉佳《从你的全世界路过》