我在.application / config / constants.php中为原始http发布数据设置常量,如下所示:
define('POST_DATA', json_decode($GLOBALS["HTTP_RAW_POST_DATA"], true));
所以我可以添加从控制器向模型发送常量POST_DATA,如下所示:
$data['data'] = $this->logins_model->signup(POST_DATA);
但我收到以下错误......
严重性:通知
消息:使用未定义的常量 POST_DATA - 假设'POST_DATA'
文件名: 控制器/ logins.php
然而,当我这样做时,我检查并将发布的数据发送给模型:
$data['data'] = $this->logins_model->signup(json_decode($GLOBALS["HTTP_RAW_POST_DATA"], true));
关于我做错的任何想法?我是否正确使用常量文件?
答案 0 :(得分:1)
json_decode
返回数组或对象,PHP常量不能是数组或对象。只允许scalar and null values。
HTTP_RAW_POST_DATA
对于每个请求都会有所不同,不是吗?所以,不要使用常量。只需在需要时将其存储在变量中即可。
答案 1 :(得分:1)
您无法将constant
设为array
。 json_deocde
生成一个数组,因此不会设置常量。
Constants may only evaluate to scalar values
常数的要点是制作一些无法改变的东西。
但是如果你想设置数据,那么你可以serialize
数据并设置为常数,当你需要数据unserialize
时,常数值
define('POST_DATA', serialize(json_decode($GLOBALS["HTTP_RAW_POST_DATA"], true)));
$post_data = unserialize (POST_DATA);
$data['data'] = $this->logins_model->signup($post_data);