CodeIgniter 4请求.getVar函数不工作



在我的codignitor项目中,我有以下视图

public function index(){
$whatever = $this->request->getVar("value");
}

我的项目中都有类似的代码,直到今天才100%正常工作,突然停止了

现在$whateverNULL

但是如果我把代码改成:

$whatever = $this->request->getGet();
$result = $whatever['value'];

结果将等于值....

此值为url中的GET参数,如:example.com?value=1

根据文档:

" getVar()方法将从$_REQUEST中提取数据,因此将返回任何数据from $_GET, $POST,或$_COOKIE.">

当我检查$_GET的值时,我看到了我的参数。

这是codeignitor中的错误吗?(奇怪的是它只是突然停止工作)

我最终在github上提交了一个问题:https://github.com/codeigniter4/CodeIgniter4/issues/4418

据说在这里解决了:https://github.com/codeigniter4/CodeIgniter4/pull/4493

描述在当前版本中,当请求是get方法时当content-type为json时,$_REQUEST参数不能为获得

显然这是一个特定版本(v4.0.4)的问题,现在已经修复了。

在我的情况下,$this->request->getVar()不能在模型内工作。根据CodeIgniter 4的文档:如果你不在控制器中,但仍然需要访问应用程序的Request对象,你可以通过Services类获得它的副本">

你可以访问如下的REQUEST变量:

$request = ConfigServices::request();
$some_field = $request->getVar('field_name'); // or getPost for $_POST array

希望对别人有所帮助

最新更新