我正在XAMPP窗口的本地系统中设置Yii2项目,但出现错误:
但是代码在Ubuntu服务器上运行良好。
这是我的validateCsrfToken()
方法:
public function validateCsrfToken()
{
if($this->enableCsrfValidation && in_array(Yii::$app->getUrlManager()->parseRequest($this)[0], $this->noCsrfRoutes)){
return true;
}
return parent::validateCsrfToken();
}
最佳答案
此问题是因为您在Windows中使用strict
PHP,但在Linux中未使用。您自己的函数common\components\Request::validateCsrfToken()
应该与yii\web\Request::validateCsrfToken()
兼容。这意味着,它需要具有相同的签名。
您现在可以做的就是将自己的功能更改为
public function validateCsrfToken($token = NULL) {
if ($this->enableCsrfValidation && in_array(Yii::$app->getUrlManager()->parseRequest($this)[0], $this->noCsrfRoutes)) {
return true;
}
return parent::validateCsrfToken($token);
}
每次重写其中一个函数时都需要执行此操作(即
beforeAction
,afterAction
,beforeSave
等等)。关于php - 在Window XAMPP中在本地系统中设置Yii2项目出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57375474/