未找到类'App \ Http \ Controllers \ IntlDateFormatter'

时间:2016-02-05 10:45:10

标签: php date laravel persian persian-calendar

我开发此代码以使用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类。我的错是什么?

3 个答案:

答案 0 :(得分:0)

感谢您的回复,我忘了添加

  

使用IntlDateFormatter;

所以通过添加它来解决未找到的错误。

答案 1 :(得分:0)

您需要导入Class所在的命名空间。

请记住,app\文件夹是PSR-4加载的,因此,例如,如果您的类在名为IntlDateFormatter.php的文件中定义,则需要将此文件放在app\的某个位置。然后在您的控制器中导入类:

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

use App\{your class location}\IntlDateFormatter;

答案 2 :(得分:0)

以下是在Laravel中使用自定义类的示例:

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

我认为您将此文件保存在app目录中。 接下来在aliases数组中的config / app.php中添加

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

这样您就可以轻松调用dateFormat函数,如下所示:

\IntlDateFormatter::dateFormat();

在您的控制器或视图中。

我希望这有帮助。

祝你好运。