Laravel Carbon 可选参数
Laravel Carbon optional parameter
我有一个与外部 API 通信的函数,并希望它作为 Carbon
实例传递可选参数,但是 API 想要 Y-m-d
格式,所以我这样做了:
protected function boostsAPIRequest($token, Carbon $dateFrom = null, Carbon $dateTo = null)
{
try {
$boosts = $this->httpGetRequest($token,
$this->apiURL . 'stats/api/v1.0/boosts' . '/?date_from=' . $dateFrom->format('Y-m-d') . '&date_to=' . $dateTo->format('Y-m-d'));
//session()->put('boosts', $boosts);
} catch (ClientException $e) {
$this->errorHandling($e);
}
return $boosts ?? null;
}
这给我一个错误说
Call to a member function format() on null
有没有办法在没有传入参数的情况下保持为空?
而不是:
$dateFrom->format('Y-m-d') . '&date_to=' . $dateTo->format('Y-m-d')
使用应该使用:
($dateFrom ? $dateFrom->format('Y-m-d') : '') . '&date_to=' . ($dateTo ? $dateTo->format('Y-m-d') : '')
这是因为您不能 运行 format
非对象方法(在本例中为 null)
您可以简单地允许将字符串值传递到函数中,使用 Carbon 的 parse()
方法,如下所示:
protected function boostsAPIRequest($token, $dateFrom = null, $dateTo = null) {
$dateFrom = Carbon::parse($dateFrom);
//the same with $dateTo
}
当心 Carbon 知道如何将空值解析为 now
日期时间,以防它收到空值,因为空值甚至是大多数函数的默认值创建 Carbon 的一个实例。
我有一个与外部 API 通信的函数,并希望它作为 Carbon
实例传递可选参数,但是 API 想要 Y-m-d
格式,所以我这样做了:
protected function boostsAPIRequest($token, Carbon $dateFrom = null, Carbon $dateTo = null)
{
try {
$boosts = $this->httpGetRequest($token,
$this->apiURL . 'stats/api/v1.0/boosts' . '/?date_from=' . $dateFrom->format('Y-m-d') . '&date_to=' . $dateTo->format('Y-m-d'));
//session()->put('boosts', $boosts);
} catch (ClientException $e) {
$this->errorHandling($e);
}
return $boosts ?? null;
}
这给我一个错误说
Call to a member function format() on null
有没有办法在没有传入参数的情况下保持为空?
而不是:
$dateFrom->format('Y-m-d') . '&date_to=' . $dateTo->format('Y-m-d')
使用应该使用:
($dateFrom ? $dateFrom->format('Y-m-d') : '') . '&date_to=' . ($dateTo ? $dateTo->format('Y-m-d') : '')
这是因为您不能 运行 format
非对象方法(在本例中为 null)
您可以简单地允许将字符串值传递到函数中,使用 Carbon 的 parse()
方法,如下所示:
protected function boostsAPIRequest($token, $dateFrom = null, $dateTo = null) {
$dateFrom = Carbon::parse($dateFrom);
//the same with $dateTo
}
当心 Carbon 知道如何将空值解析为 now
日期时间,以防它收到空值,因为空值甚至是大多数函数的默认值创建 Carbon 的一个实例。