【发布时间】:2021-11-21 02:56:48
【问题描述】:
我想在 Laravel 8 中为 utils 创建一个目录。我有这个但它不起作用:
app/Utils/DateTime.php:
<?php
namespace App\Utils\DateTime;
const ISO8601_DATE_FORMAT = "Y-m-d\TH:i:s.uP";
function parseISO8601(string $time): \DateTime {
if ($time.endsWith("Z")) {
$time = $time.str_replace($time, "Z", "+00:00");
}
return \DateTime::createFromFormat(ISO8601_DATE_FORMAT, $time);
}
app/Http/Controllers/SearchController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Http;
use Illuminate\Http\Request;
use function App\Utils\DateTime\parseISO8601 as parseISO8601;
class SearchController extends Controller
{
public function run(Request $request)
{
parseISO8601("2021-10-03T10:00:45.145126+01:00");
}
}
但我得到一个错误:
Call to undefined function App\Utils\DateTime\parseISO8601()
我错过了什么?由于某种原因,它似乎无法自动加载DateTime。我需要在 Laravel 的某个地方手动配置一个额外的路径吗?
【问题讨论】:
-
您不需要
as parseISO8601,因为您使用的是相同的名称。只有在创建别名(由于名称冲突而重命名函数)时才需要它