以前使用的方法还是太嫩了,最近才发现如果评论存在分页后就会导致评论无法进行评论,最开始使用网上搜索的代码,不知道什么原因,获取不到值。
下面就是网上搜的代码
<?php $security = $this->widget('Widget_Security'); ?>
<input type="hidden" name="_" value="<?php echo $security->getToken($this->request->getReferer()) ?>">
通过单独查看“$this->request->getReferer()”这段代码发现获取的值一直为null,这就导致获取到的“Token”和程序内部生成的不一样,通过查看“security”这个类发现其中也提供了其他获取参数和url的方法。
下面就是博主使用的代码
<input name="_" type="hidden" id="comment_" value="<?php echo Helper::security()->getToken(str_replace(array('?_pjax=%23wrap','?_pjax=%23pjax-load', '&_pjax=%23wrap'), '', $this->request->getUrlPrefix().$this->request->getRequestUri()));?>"/>
上面代码中有些替换函数非必须代码,你可以找到这段代码“$this->request->getReferer()”替换成“$this->request->getUrlPrefix().$this->request->getRequestUri()”即可。
来自: 重庆市 . 夸克浏览器