Yii 扩展请求组件 returns 500 错误
Yii Extending Request Component returns 500 error
我正在尝试扩展 Yii2 的 Request 组件,就像我们之前的 Yii1 项目扩展 CHttpRequest 一样,但无论我尝试什么,我得到的只是一个 500 错误。我的配置如下:
'components' => [
'request' => [
'class' => 'app\components\MY_HttpRequest',
'cookieValidationKey' => '...',
],
...
],
然后在 //components/MY_HttpRequest.php 中,即使空 class 也只会调用父方法:
<?php
//namespace app\components;
namespace app\components\MY_HttpRequest;
use Yii;
class MY_HttpRequest extends yii\web\Request {
}
它显示 500 错误,所以我无法真正调试它,因为我没有任何反馈。我在 Google 上搜索了如何扩展 Request 组件,但我发现的只是一个关于如何扩展 Response component 的问题,我已经在使用该方法但没有成功。
没有关于错误的详细信息(仅以 example.com 为例):
此外,如果我像这样更改此行:
'class' => 'app\components\MY_HttpRequestaaaaaaaaaaaaaa',
我收到找不到文件的错误,所以我知道正在加载文件。
将您的 class 和文件名更改为 MYHttpRequest
就可以了
'components' => [
'request' => [
'class' => 'app\components\MYHttpRequest',
'cookieValidationKey' => '...',
],
]
和components/MYHttpRequest.php
namespace app\components;
class MYHttpRequest extends \yii\web\Request {
}
原来我刚刚忘记了 "extend" 语句中的一个小反斜杠。
class MY_HttpRequest extends yii\web\Request
应该是
class MY_HttpRequest extends \yii\web\Request
我正在尝试扩展 Yii2 的 Request 组件,就像我们之前的 Yii1 项目扩展 CHttpRequest 一样,但无论我尝试什么,我得到的只是一个 500 错误。我的配置如下:
'components' => [
'request' => [
'class' => 'app\components\MY_HttpRequest',
'cookieValidationKey' => '...',
],
...
],
然后在 //components/MY_HttpRequest.php 中,即使空 class 也只会调用父方法:
<?php
//namespace app\components;
namespace app\components\MY_HttpRequest;
use Yii;
class MY_HttpRequest extends yii\web\Request {
}
它显示 500 错误,所以我无法真正调试它,因为我没有任何反馈。我在 Google 上搜索了如何扩展 Request 组件,但我发现的只是一个关于如何扩展 Response component 的问题,我已经在使用该方法但没有成功。
没有关于错误的详细信息(仅以 example.com 为例):
此外,如果我像这样更改此行:
'class' => 'app\components\MY_HttpRequestaaaaaaaaaaaaaa',
我收到找不到文件的错误,所以我知道正在加载文件。
将您的 class 和文件名更改为 MYHttpRequest
就可以了
'components' => [
'request' => [
'class' => 'app\components\MYHttpRequest',
'cookieValidationKey' => '...',
],
]
和components/MYHttpRequest.php
namespace app\components;
class MYHttpRequest extends \yii\web\Request {
}
原来我刚刚忘记了 "extend" 语句中的一个小反斜杠。
class MY_HttpRequest extends yii\web\Request
应该是
class MY_HttpRequest extends \yii\web\Request