YII2场景使用,获取模型修改前后属性方法跟一些其他小的技巧

// 1.场景使用
// 模型代码 设置场景
[['ip'], 'unique', 'on' => '
create'],//唯一验证
$teacher_model = new Course();
$teacher_model->setScenario('create');//设置使用哪个场景

// 2.获取模型修改前后属性方法
// $model->getDirtyAttributes() 修改后的值getOldAttributes()前
//修改前的值
$former = $model->getOldAttributes();
//修改后的值
$new = $model->getDirtyAttributes();

// 3.快速获取模型里面所有的属性
//获取模型里面全部的字段(意思就是获取表里面全部字段名)
$model->safeAttributes();//获取模型里面全部的字段(意思就是获取表里面全部字段名),需要注意是模型函数rules()必须跟数据库字段一样

// 4.根据form表单提交的名称跟模型里面属性一样可以直接赋值给属性
// 获取post提交的数据
$post = Yii::$app->request->post();
// 属性给模型属性
$model = new Purchase();
$model->attributes = $post;
// 模型验证
if (!$model->validate()) {
  //显示验证错误信息
  return $this->failReturn('#1000001',implode(",", $this->verifying($model->errors)));
}
// 保存数据
if ($model->save()) {
  return $this->successReturn([],Yii::t("app","addsuccess"));
}else{
  return $this->failReturn('#1000002',Yii::t("app","addfaild"));

}
 




  

 

posted @ 2020-10-21 17:06  $Elvin  阅读(1001)  评论(0)    收藏  举报