本地系统中设置Yii2项目

本地系统中设置Yii2项目

我正在XAMPP窗口的本地系统中设置Yii2项目,但出现错误:



php - 在Window XAMPP中在本地系统中设置Yii2项目出现错误-LMLPHP

但是代码在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);
}

每次重写其中一个函数时都需要执行此操作(即beforeActionafterActionbeforeSave等等)。

关于php - 在Window XAMPP中在本地系统中设置Yii2项目出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57375474/

10-11 15:11