我正在从db中提取一些数据,但是我的DateTime字段引起了问题。
如果我设置了DateTime字段,它会返回很好的结果,但是当我将它设置为NULL时,它总是会抛出一个错误。
我的第一个代码:
$results = $this->getMyRepository()->findAll();
$rows = [];
$rows[] = array(
"id",
"created"
);
foreach ($results as $row) {
$rows[] = [
$row->getId(),
$row->getCreated(new \DateTime())->format('Y-m-d'),
];
}
return $rows;
}错误:
调用null上的成员函数格式
我的第二个更改$row->getCreated()分配:
$row->getCreated() ?? new \DateTime('now'))->format('Y-m-d');这意味着:
> Coalesce operator is available in PHP 7 only.当我执行php -v时,它在Symfony 3.4上显示PHP7.2.19-0ubuntu0.18.04.1。以及该代码的其他语法错误。
有人能帮我处理synatax或者告诉我如何使日期时间工作在NULL上吗?
发布于 2019-08-14 09:48:39
如果PHP 7在您的机器上运行,您可以这样做:
$row->getCreated() ?? (new \DateTime('now'))->format('Y-m-d');所以在新的日期时间之前有一个额外的(
如果你必须用更低的PHP版本来做
$createdAt = $row->getCreatedAt();
if (!$createdAt) {
$now = new DateTime('now');
$createdAt = $now->format('Y-m-d');
}
$rows[] = [
$row->getId(),
$createdAt,
];https://stackoverflow.com/questions/57491568
复制相似问题