load()与()保存怎么在Yii 2中使用

  介绍

今天就跟大家聊聊有关负载()与()保存怎么在Yii 2中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

public  function 负载(数据,美元,美元formName =, null)   ,{   时间=美元才能scope  formName 美元;===,null  ?,这→美元formName (),:, formName美元;,//调用load 一般我是,test 美元;=,new 测试(),测试→美元负载(& # 39;参数1 & # 39;,& # 39;参数2 & # 39;)//,参数1,一般是post  get 传过来的参数,第二个参数,是一个空字符串,& # 39;& # 39;;//$ this→formName(),返回的额是,你实例化的类的名字,new 测试(),最后返回的是测试      if 才能;(scope 美元;===,& # 39;& # 39;,,,,!空(元数据)),{   ,,这→美元setAttributes(元数据);//进入      ,,return 真实;   ,,},elseif (收取($ data[美元]范围)),{   ,,这→美元setAttributes ($ data[美元]范围);      ,,return 真实;   ,,},{else    ,,return 假;   ,,}   以前,}

<强>接下来看,,setAttributes()

public  function  setAttributes(值,美元,美元safeOnly =,真的)   ,{   if 才能;(is_array(值)美元),{   ,,attributes 美元;=,array_flip (safeOnly 美元;?,这→美元safeAttributes (),:, $ this→属性());//这里执行的是$ this→safeAttributes()方法,该方法返回的是当前场景下需要验证的字段。最后美元属性打印下来看下图   foreach  (values 美元;as  name 美元;=祝辞,美元值),{   ,if (收取(属性[名字]美元)美元),{,   这→name 美元=,美元价值,,   ,}elseif  (safeOnly美元),{   ,$ this→onUnsafeAttribute(名称、美元,美元值),,   },},   }大敌;   }

图:图1的文件名是test 实例化后是美元测试对象,<代码>公共职能attribues() 方法中对应的就是表字段。

我这里没有用场景,所以暂时不讲解场景这个功能。不过大家可以看手册。很容易懂。

 load()与()保存怎么在Yii 2中使用“> <img src=//例如post 提交过来的数据是这样      $=后[      & # 39;一个# 39;=祝辞;123456年,      & # 39;b # 39;=祝辞& # 39;六边形abcdef # 39;      ),      测试→美元=123456      美元测试→b=& # 39;六边形abcdef # 39;

所以这个负载()方法只是分配post 或者得到发过来的数据,不做验证。

<强>接下来看保存();

<强>查看保存方法。

public  function 保存($ runValidation =,真的,,attributeNames 美元;=,null)   ,{   if 才能;($ this→getIsNewRecord()),{//判断是否是新纪录   ,,return 美元这→插入(runValidation美元,,attributeNames美元);//执行这里,之后美元这代表的是test 这个模型表。//test 继承的是\ yii \ mongodb \ ActiveRecord 查看插入(),方法,。   },{else    ,return 这→美元更新(runValidation美元,,attributeNames美元),!==,假,,}   ,}

<强> insert()方法中

public  function 插入($ runValidation =,真的,,attributes 美元;=,null)   ,{   if 才能;(runValidation 美元;,,,! $ this→验证(属性)美元),{//下面的代码分析验证方法,验证规则   ,,return 假;   ,,}=美元才能result  $ this→insertInternal($属性);//保存数据      return 才能;美元的结果;   以前,}

<强>首先看

//进行数据验证。   public  function 验证(attributeNames 美元;=,null,, clearErrors 美元;=,真的)   ,{   if 才能;(clearErrors美元),{   ,,这→美元clearErrors ();   ,,}      if 才能;(! $ this→beforeValidate()),{//在验证之前首先执行的是,beforValidata    ,,return 假;   ,,}=美元才能scenarios  $ this→场景();=美元才能scenario  $ this→getScenario ();//检查是否调用场景   if 才能;(!收取(场景(场景)美元)美元),{   ,,throw  new  InvalidParamException (“Unknown 场景:,scenario"美元;);   ,,}      if 才能;(attributeNames 美元;===,null), {   ,,attributeNames 美元;=,$ this→activeAttributes ();//返回数组(值为属性的名称)   ,,}//$ this→getActiveValidators(),验证数据只读取rules 方法,getActiveValidators (),→getValidators ()→createValidators()这里验证规则等信息→createValidator ()   foreach  ($ this→getActiveValidators (), as 验证器美元),{,   验证器→美元validateAttributes ($ this, attributeNames美元);,//获取交集,检查是否有错误,hasError ()   ,}   ,$ this→afterValidate ();   ,return  ! $ this→hasErrors ();,}

load()与()保存怎么在Yii 2中使用