acking

acking

让代码飞一会

  • 财富值2565
  • 威望值0
  • 总积分3215

个人信息

  • 2016-04-27 已签到
    连续签到3天,获得了15个金钱
  • 2016-04-26 已签到
    连续签到2天,获得了10个金钱
  • 2016-04-25 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回答

    DirtyAttributes :

    大概定義 => 顯現汙染的屬性

    假使是 INSERT 狀態 dirtyAttributes 都應當出現填入的欄位值

    以下提出 UPDATE 狀態

    假使我 $model = User::findOne('2');	//抓取 User表中第二筆的資料
    var_dump($model->status);	//如果 int(2)
    範例一 : 
    	$model->status = 3;
    	if(empty($model->dirtyAttributes)){
    		echo "數據無變化";
    	}else{
    		echo "數據變化";
    	}
    
    	Ans :: "數據變化"
    
    範例二 : 
    	$model->status = 2;
    	if(empty($model->dirtyAttributes)){
    		echo "數據無變化";
    	}else{
    		echo "數據變化";
    	}
    
    	Ans :: "數據無變化"
    

    參考文獻 :
    En :
    http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#dirty-attributes

    Cn :
    http://www.yiichina.com/doc/guide/2.0/db-active-record

    真正原因是 dirtyAttributes 这个校验的是 === 。而input 输入框 status 的post提交上去的是字符串类型,而我的数据库类型是int类型。故被判断有变化,我只能在post上来的值强制转换为int类型,才能通过dirtyAttributes。

  • 回复了 的回答

    DirtyAttributes :

    大概定義 => 顯現汙染的屬性

    假使是 INSERT 狀態 dirtyAttributes 都應當出現填入的欄位值

    以下提出 UPDATE 狀態

    假使我 $model = User::findOne('2');	//抓取 User表中第二筆的資料
    var_dump($model->status);	//如果 int(2)
    範例一 : 
    	$model->status = 3;
    	if(empty($model->dirtyAttributes)){
    		echo "數據無變化";
    	}else{
    		echo "數據變化";
    	}
    
    	Ans :: "數據變化"
    
    範例二 : 
    	$model->status = 2;
    	if(empty($model->dirtyAttributes)){
    		echo "數據無變化";
    	}else{
    		echo "數據變化";
    	}
    
    	Ans :: "數據無變化"
    

    參考文獻 :
    En :
    http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#dirty-attributes

    Cn :
    http://www.yiichina.com/doc/guide/2.0/db-active-record

    if ( Yii::$app->request->isPost ) {
            //$model->status = 0;
                if ($model->load(Yii::$app->request->post())) {
    
                    if(empty($model->dirtyAttributes)){
                        echo "數據無變化";
                    }else{
                        echo "數據變化";
                    }
                }
    }
    

    数据变化

    if ( Yii::$app->request->isPost ) {
        //$model->status = 0;
        //if ($model->load(Yii::$app->request->post())) {
    
        if(empty($model->dirtyAttributes)){
            echo "數據無變化";
        }else{
            echo "數據變化";
        }
    //}
    

    数据无变化

    问题出在$model->load(Yii::$app->request->post())

  • 2016-04-22 已签到
    连续签到2天,获得了10个金钱
  • 2016-04-21 已签到
    连续签到1天,获得了5个金钱
  • 2016-04-18 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回答

    不是先经过控制器再跳转到表单?穿越?

    请问控制器里面具体写法?

总监 等级规则
3215/5000
资料完整度
70/100
用户活跃度
0/100

Ta的关注

1

Ta的粉丝

13

Ta的访客

52