例如:
1、AR中的add方法
Yii::$service->helper->errors->add('ActiveRecord Save Error: $model is empty');
2、添加之后一直到控制器controller的get方法
$errors = Yii::$service->helper->errors->get();
想借鉴一下,不太明白具体实现原理或过程。
希望得到回答,谢谢开发者
/**
* @property $model | Object , 数据库model
* @property $one | Array , 数据数组,对model进行赋值
* 通过循环的方式,对$model对象的属性进行赋值。
* 并保存,保存成功后,返回保存后的model对象
*/
public function save($model, $one, $serialize = false)
{
if (!$model) {
Yii::$service->helper->errors->add('ActiveRecord Save Error: $model is empty');
return false;
}
$attributes = $model->attributes();
if (is_array($attributes) && !empty($attributes)) {
foreach ($attributes as $attr) {
if (isset($one[$attr])) {
if ($serialize && is_array($one[$attr])) {
$model[$attr] = serialize($one[$attr]);
} else {
$model[$attr] = $one[$attr];
}
}
}
if ($model->save()) {
return $model;
} else {
Yii::$service->helper->errors->add('model save fail');
return false;
}
} else {
Yii::$service->helper->errors->add('$attribute is empty or is not array');
return false;
}
}
$saveData = Yii::$service->product->save($param);
if (!$saveData) {
$errors = Yii::$service->helper->errors->get();
return [
'code' => 400,
'message' => 'update product fail',
'data' => [
'error' => $errors,
],
];
} else {
return [
'code' => 200,
'message' => 'update product success',
'data' => [
'updateData' => $saveData,
]
];
}