终身孤寂

终身孤寂

不还手,不回头。

  • 财富值180
  • 威望值30
  • 总积分500

个人信息

  • 赞了回答

    要一起用,load()只是加载数据,validate()才是验证。
    更新和添加都用save(),yii通过$model->isNewRecord 来判断是不是一条新纪录,然后调用insert()或者update()
    load()setAttributes()方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
    你可以不用validate(),因为save方法会先调用validate()再执行insert()或者update()(看源码就知道)。

  • 就算在底部写引入自己的jquery也是可以的

    $this->registerJs($this->blocks['page'], \yii\web\View::POS_HEAD);
    

    这个就是个例子,我在当然的view页面写的,把当前页面的代码放到头部。

  • 对,一般都是头部加jquery ,不然下面用它的方法岂不是会报错,我听你意思是gridview里面的插件总是在尾部的最前端注册? 其实加载位置都可以自己调整的,想把拿个JS 放到哪个位置就放到哪。

  • 自带那个jqeury 我也遇到过冲突的情况,我是在配置里面把他注掉了,然后写不同的公共文件加载jquery等文件。

  • 回复了 的回答

    如果你直接用F5刷新应该也是会报错,初步判断是因为 _csrf 验证的问题,这个是为了防止攻击设置的令牌。
    在配置里面

    'components'=>array(
        'request'=>array(
            // Enable Yii Validate CSRF Token
            'enableCsrfValidation' => true,
        ),
    ), 
    

    就开启了。然后POST 请求的时候就会验证你的 _csrf。
    如果你用组件的话,默认是有这个的,不需要你做处理,如果是你自己写的表单,就需要在form 里面加上这个字段,如下:
    <input type="hidden" value="<?php echo Yii::app()->getRequest()->getCsrfToken(); ?>" name="YII_CSRF_TOKEN" />

    你在报错的控制器里面加上 public $enableCsrfValidation = false;试试。 或者把我上面给你发那一句加到表单里试试!

  • 2016-07-19 已签到
    连续签到2天,获得了10个金钱
  • 回复了 的回答

    如果你直接用F5刷新应该也是会报错,初步判断是因为 _csrf 验证的问题,这个是为了防止攻击设置的令牌。
    在配置里面

    'components'=>array(
        'request'=>array(
            // Enable Yii Validate CSRF Token
            'enableCsrfValidation' => true,
        ),
    ), 
    

    就开启了。然后POST 请求的时候就会验证你的 _csrf。
    如果你用组件的话,默认是有这个的,不需要你做处理,如果是你自己写的表单,就需要在form 里面加上这个字段,如下:
    <input type="hidden" value="<?php echo Yii::app()->getRequest()->getCsrfToken(); ?>" name="YII_CSRF_TOKEN" />

    这句错误是提示你请求的数据没有得到验证,初步判断是你没有把令牌(_csrf)加到表单里面。我看你不知道它是什么东西所以告诉你是为了防止攻击的一个玩意,就好比你的QQ令牌,你不用令牌肯定提示你 “请输入令牌”,你不能说提醒你就代表你在攻击腾讯把...... 至于你这个错误时不时得出来,我猜是你在未加入令牌的表单提交的时候报的错。

  • 回复了 的回答

    <input type="hidden" value="<?php echo Yii::app()->getRequest()->getCsrfToken(); ?>" name="YII_CSRF_TOKEN" />

    过奖啦!

  • 回复了 的回答

    如果你直接用F5刷新应该也是会报错,初步判断是因为 _csrf 验证的问题,这个是为了防止攻击设置的令牌。
    在配置里面

    'components'=>array(
        'request'=>array(
            // Enable Yii Validate CSRF Token
            'enableCsrfValidation' => true,
        ),
    ), 
    

    就开启了。然后POST 请求的时候就会验证你的 _csrf。
    如果你用组件的话,默认是有这个的,不需要你做处理,如果是你自己写的表单,就需要在form 里面加上这个字段,如下:
    <input type="hidden" value="<?php echo Yii::app()->getRequest()->getCsrfToken(); ?>" name="YII_CSRF_TOKEN" />

    在下面~ 第一次用,代码没弄全

  • <input type="hidden" value="<?php echo Yii::app()->getRequest()->getCsrfToken(); ?>" name="YII_CSRF_TOKEN" />

主管 等级规则
500/1000
资料完整度
30/100
用户活跃度
20/100

Ta的关注

0

Ta的粉丝

1

Ta的访客

0