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")); }