【发布时间】:2023-04-06 05:52:01
【问题描述】:
我无法用 Symfony 定义我的日期时间参数。
如果 last_scan_date 为 null,我将尝试返回 null 如果不返回结果!
错误提示:
传递给 checkLastScan() 的参数 2 必须是 DateTime 的实例,给定字符串
我的功能:
public function checkLastScan($hash, \DateTime $lastScanDate)
{
$findLastScan = $this->getMyRepository()->findOneBy([
'hash' => $hash,
'lastScanDate' => $lastScanDate
]);
if (!$findLastScan) {
throw new \Exception('Not found!');
}
if ($lastScanDate === null) {
return null;
} else {
return $findLastScan;
}
}
和我的电话:
$this->requirePostParams(['hash', 'last_scan_date']);
$this->container->get('app')->checkLastScan(
$this->data['hash'],
$this->data['last_scan_date']
);
return $this->success();
和实体:
/**
* @ORM\Column(name="last_scan_date", type="date", nullable=true)
*/
private $lastScanDate;
也许问题是当需要像这样的帖子参数时:
/**
* Require post params
*
* @param $params
*/
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;
}
}
【问题讨论】:
-
什么是 $this->data?
-
受保护的 $data = [];这可以正常工作@GiacomoM
-
我不确定它是否能正常工作:D 因为 last_scan_date 被视为字符串而不是日期
-
我不确定,我不是 symfony 专家,但也许你需要在 $lastScanDate 成员的评论中添加@var date $lastScanDate。查看此帖子stackoverflow.com/questions/10836123/…
-
我更新了答案,快来看看吧! @GiacomoM 谢谢。
标签: php doctrine symfony-3.4