在我的codignitor项目中,我有以下视图
public function index(){
$whatever = $this->request->getVar("value");
}
我的项目中都有类似的代码,直到今天才100%正常工作,突然停止了
现在$whatever
是NULL
但是如果我把代码改成:
$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
希望对别人有所帮助