Я разрабатываю этот код для просмотра времени и даты Тегерана с 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. в чем моя ошибка?
Спасибо за ответ, я забыл добавить
использовать IntlDateFormatter;
Таким образом, не найденная ошибка решена путем добавления этого.
Вам нужно импортировать пространство имен, в котором находится ваш класс.
Помните, что app\
папка загружена в PSR-4, поэтому, если, например, ваш класс определен в файле с именем IntlDateFormatter.php, вам нужно поместить этот файл где-то в app\
, Затем в свой контроллер вы импортируете класс:
// in your controller
namespace App\Http\Controllers;
use App\{your class location}\IntlDateFormatter;
Вот пример использования пользовательских классов в 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();
Либо в вашем контроллере, либо на ваш взгляд.
Я надеюсь, что это поможет.
Удачи.