我定义了我想从 db 传递“哈希”值的 postParams。
我想要完成的是,如果我的 Session 表中存在哈希返回 TRUE,如果不返回 FLASE。
问题是我的代码总是返回 TRUE。
我错过了什么?
$postData = $this->requirePostParams(['hash']);
$this->container->get('app')->formService(
$this->data['hash']
);
if ($postData['hash']) {
$hash = $this->get('app')->getSessionRepository()->find($this->data['hash']);
if (!$hash) return false;
} else {
return true;
}
我的 requirePostParams 工作正常!(在其他功能上测试)
protected function requirePostParams($params) {
$currentRequest = $this->get('request_stack')->getCurrentRequest();
$postData = $currentRequest->request->all();
$postContent = json_decode($currentRequest->getContent(), true);
if(!empty($postContent)) $postData = $postContent;
$this->data = $postData;
$missingParams = [];
foreach ($params as $param) {
if (!array_key_exists($param, $postData)) {
$missingParams[] = $param;
}
}
}
我的服务:
$findHash = $this->getSessionRepository()->findOneBy([
'hash' => $hash
]);