这个错误的提示很明确的,是说提交的数据验证不通过。出现这个错误的原因是Yii2框架本身的安全机制需要在提交表单时验证CSRF,这对于数据的安全性和防止表单的重复提交是简单并且有效的一种解决方案。
如果是用的Yii2自带的模型加ActiveForm全栈开发思想的模式,一般是不会遇到这种情况的。因为它会自动在表单里增加一个隐藏的name为_csrf的的字段,框架会从request中接收到值并进行验证。所以目前有两种方式解决:
1、在表单中手动添加一个标签,就像这样(个人比较推荐):
<input type="hidden" name="_csrf" value="<?=Yii::$app->request->csrfToken?>" />
2、在控制器中设置这一属性:public $enableCsrfValidation = false , 虽然这种办法也能解决问题,但是不够安全,关掉CSRF就等于少了一层安全机制。
文章来源: https://blog.csdn.net/beyondamos/article/details/90510465