Класс ‘App \ Http \ Controllers \ IntlDateFormatter’ не найден

Я разрабатываю этот код для просмотра времени и даты Тегерана с php:

$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL,
IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL);

echo "Date: " . $fmt->format(time()) . "\n";

этот код работает нормально, но я хочу использовать его в функции моего контроллера в Laravel.

Маршрут:

Route::get('/date', [
'as' => 'date', 'uses' => 'HomeController@date'
]);

Контроллер:

public function date() {
$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL,
IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL);

echo "Date: " . $fmt->format(time()) . "\n";
}

И результат:

Класс ‘App \ Http \ Controllers \ IntlDateFormatter’ не найден

Я знаю, что в Laravel нет класса IntlDateFormatter, но я за исключением того, что здесь используется класс php. в чем моя ошибка?

0

Решение

Спасибо за ответ, я забыл добавить

использовать IntlDateFormatter;

Таким образом, не найденная ошибка решена путем добавления этого.

0

Другие решения

Вам нужно импортировать пространство имен, в котором находится ваш класс.

Помните, что app\папка загружена в PSR-4, поэтому, если, например, ваш класс определен в файле с именем IntlDateFormatter.php, вам нужно поместить этот файл где-то в app\, Затем в свой контроллер вы импортируете класс:

// in your controller
namespace App\Http\Controllers;

use App\{your class location}\IntlDateFormatter;
0

Вот пример использования пользовательских классов в Laravel:

<?php
namespace YourProject\Services;
class IntlDateFormatter{
public static function dateFormat(){
/*Do your date formatting here and return desired result*/
}
}

Я полагаю, вы сохраните этот файл в каталоге приложения.
Далее в config / app.php внутри массива aliases добавьте

'IntlDateFormatter'     => Artisanian\Services\IntlDateFormatter::class,

Таким образом, вы можете легко позвонить dateFormat функция как следовать:

\IntlDateFormatter::dateFormat();

Либо в вашем контроллере, либо на ваш взгляд.

Я надеюсь, что это поможет.

Удачи.

0
По вопросам рекламы [email protected]