no4990
- no4990 评论了教程 解决提交表单出现400错误的问题
JS获取csrf
var csrfToken = '<?php echo Yii::$app->request->csrfToken ?>
在AJAX的数据中添加csrf:
'data':{'num':num,'productid':productid,'_csrf':csrfToken},
这样写即可,这样控制器就能收到csrf数据了。
- no4990 2017-04-26 已签到连续签到1天,获得了5个金钱
- no4990 2017-04-24 已签到连续签到2天,获得了10个金钱
- no4990 2017-04-23 已签到连续签到1天,获得了5个金钱
要一起用,
load()
只是加载数据,validate()
才是验证。
更新和添加都用save()
,yii通过$model->isNewRecord
来判断是不是一条新纪录,然后调用insert()
或者update()
。load()
和setAttributes()
方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()
。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
你可以不用validate()
,因为save方法会先调用validate()
再执行insert()
或者update()
(看源码就知道)。在save()、insert()、update() 是会调用validate(),所以load()只加载数据这句话应该没错吧。
- no4990 2017-04-19 已签到连续签到1天,获得了5个金钱
- no4990 2017-04-17 已签到连续签到1天,获得了5个金钱
- no4990 回复了 xh870462542 的评论
想请问下 php的onsubmit是添加在哪的? 用了renderPartial()代替render()后,如何让rules()验证股则继续有效?
renderPartial()不只是不使用模板吗,和验证没关系吧