我的课程中有一堆日期助手功能。我将它存储在app \ Helpers \ DateHelper.php
中<?php
namespace App;
use DateTime;
class DateHelper {
public static function day_ago($date) {
if ($date) {
$ts = time() - strtotime(str_replace("-","/", $date ));
if($ts>31536000) $val = round($ts/31536000,0).' year';
else if($ts>2419200) $val = round($ts/2419200,0).' month';
else if($ts>604800) $val = round($ts/604800,0).' week';
else if($ts>86400) $val = round($ts/86400,0).' day';
else if($ts>3600) $val = round($ts/3600,0).' hour';
else if($ts>60) $val = round($ts/60,0).' minute';
else $val = $ts.' second';
if($val>1) $val .= 's';
return $val;
}
}
}
"autoload": {
"classmap": [
"database",
"app/Helpers"
],
"psr-4": {
"App\\": "app/"
},
"files": ["app/Helper.php"]
},
然后,我run composer install
我得到了
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
> php artisan clear-compiled
> php artisan optimize
Generating optimized class loader
然后,我像这样添加到别名数组
'DateHelper' => 'app\Helpers\DateHelper',
然后,我用它了
{{ DateHelper::day_ago($n->created_at) }}
Now, I kept getting `Class 'DateHelper' not found`
如何正确添加?
对此的任何提示/建议将不胜感激!
答案 0 :(得分:3)
你的别名错了。别名是具有命名空间的完全限定类名,而不是它所在的目录。
'DateHelper' => 'App\DateHelper',
我建议遵循PSR-4标准。它可以节省时间并最大限度地减少混淆。
此外,所以这不会再发生,最好使用如下语法......
'DateHelper' => App\DateHelper::class,
这样,你可以绝对确定这个类是否存在。
答案 1 :(得分:1)
Laravel中帮助文件的典型示例:
helper.php
目录中创建app
文件。 helper.php
文件中添加composer.json
文件。 composer dump-autoload
如果要为帮助程序文件创建目录,请为辅助文件命名空间。
"autoload": {
"classmap": [
"database",
],
"psr-4": {
"App\\": "app/",
"Helpers\\": "app/helpers/" //This is if you are using the directory
},
"files": ["helper.php"] //This is if it's just a php file.
},
即:
//app/helpers/helperClass.php
<?php namespace Helpers;
class helperClass{
public function showDate()
{
//return
}
}
在控制器中,当您使用辅助函数时,请导入该类。
即:
use Helpers/helperClass;
//If you've creates an alias for this, use it here.
use helperClass; //(This is from the config/app.php file)
如果是视图,请使用它:{{ \Helpers\helperClass::showDate() }}