addchild

addchild

这家伙有点懒,还没写个性签名!

  • 财富值85
  • 威望值20
  • 总积分375

个人信息

  • 提出了问题
    更新数据表的结构缓存
  • 2015-08-20 已签到
    连续签到1天,获得了5个金钱
  • 2015-08-11 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回答

    提交前存变量,提交后比较。

    没具体去跟踪过,不清楚修改过程中是只提交了变动数据到服务器,还是全部重新提交到服务器。

    如果只提交了变动数据,你也可以在存入数据库时记录哪些数据有改动。

    已经找到了,框架自带的getDirtyAttributes方法就是返回被修改的字段的,save操作也只会保存这个方法返回的那些字段

  • 2015-08-04 已签到
    连续签到1天,获得了5个金钱
  • 2015-07-30 已签到
    连续签到1天,获得了5个金钱
  • 一直用的http://sentsin.com/layui/laydate/
    可以封装成widget

  • 回复了 的回答

    yii\widgets\ActiveField中有这么一个属性enableAjaxValidation是否启用基于ajax的数据验证。如果没有设置值等于ActiveForm::enableAjaxValidation的值。

    $form = ActiveForm::begin();
    echo $form->field($model, 'username',['enableAjaxValidation'=>true])->textInput(['maxlength' => true]);
    echo $form->field($model, 'password')->passwordInput();
    ActiveForm::end();
    

    上面的代码我的理解是username字段进行ajax验证,password字段不进行ajax验证。但是我尝试了一下发现还有点问题,就是如果先输入password字段的话password是不会进行ajax验证的,但是只要先输入username进行了ajax验证之后再输入password时发现也出现了ajax验证,就是说一但有一个字段先进行了ajax验证其他不需要的字段也会进行ajax验证。现在还在研究这个问题,希望对你有点思路

    我说的那个方法是对的,之前不能用是因为服务器的程序写的不对造成的。

    if(Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())){
            Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
            return \yii\widgets\ActiveForm::validate($model);
    }
    
    

    这样就可以了。只验证写了['enableAjaxValidation'=>true]的字段,其他不进行ajax验证的

  • 赞了回答
    private $name;
    public function getName(){
        return $this->cn_name;
    }
    public function setName($name){
        $this->cn_name=$name;
    }
    

    记得$name用private

见习主管 等级规则
375/500
资料完整度
20/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

4

Ta的访客

10