我只是不知道如何解决以下问题:
我有一个用凹槽框架制作的 API,一切正常,直到我设置RecessConf::$mode = RecessConf::PRODUCTION
.
问题:在生产模式下,我的数据库插入工作不正常。我使用此代码插入:
对于请求:
$sessionData = new SessionData();
$sessionData->parent_id = NULL;
$sessionData->request_id = 1234567;
$sessionData->request_click_id = asld1212312llkn1212;
$sessionData->request_name = 'myRequestName';
$sessionData->ip_address = NULL;
$sessionData->save();
$ID = $sessionData->id;
然后:
$user = new User();
$user->session_data_id = $ID;
$user->session_request_id = 1234567;
$user->data = json_encode( ['name' => 'Test', 'email' => 'e@mail.com'] );
$user->save();
然后:
这是为了响应(请注意 parent_id 应该与第一个查询中的 ID 相同):
$sessionData = new SessionData();
$sessionData->parent_id = $ID;
$sessionData->request_id = 78901234;
$sessionData->request_click_id = xy.cmy.qp1212121;
$sessionData->request_name = 'myResponeName';
$sessionData->ip_address = NULL;
$sessionData->save();
而且$sessionData->parent_id
是完全随机的。有时它会出现在数据库中,但大多数时候不会。我确定我有,$ID
因为如果我倾倒它,我可以看到,如果我试图插入一个修复号,比如
$sessionData->parent_id = 123;
它仍然是完全随机的。
但在开发模式下,一切都按预期工作。
提前致谢,
表方案session_data
:
CREATE TABLE `session_data` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` varchar(11) DEFAULT NULL,
`request_id` varchar(255) NOT NULL,
`request_click_id` varchar(255) DEFAULT NULL,
`request_name` varchar(255) NOT NULL,
`ip_address` varchar(255) DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用户表方案:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`session_data_id` varchar(255) NOT NULL,
`session_request_id` varchar(255) DEFAULT NULL,
`ip_address` varchar(255) DEFAULT NULL,
`data` text,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;