在 php Laravel 5 中创建自定义帮助程序函数的最佳实践是什么?我有我创建了我想要

2022-08-30 22:06:36

我有

默认created_at日期继续打印出来为MySQL格式:2015-06-12 09:01:26。我想像 ,将来像 其他格式一样以我自己的方式打印它。12/2/2017


我创建了

一个名为并将其存储在 - 它看起来像这样DataHelper.php/app/Helpers/DateHelper.php

<?php

namespace App\Helpers;

class DateHelper {

    public static function dateFormat1($date) {
        if ($date) {
            $dt = new DateTime($date);

        return $dt->format("m/d/y"); // 10/27/2014
      }
   }
}

我想要

能够在我的刀片视图中调用它,例如

DateHelper::dateFormat1($user->created_at)

我不知道下一步该怎么办。

在 php Laravel 5 中创建自定义帮助程序函数的最佳实践是什么?


答案 1
  1. 在您的目录中,创建一个文件并添加您的函数。app/Httphelpers.php
  2. 在 ,在块中,添加 。composer.jsonautoload"files": ["app/Http/helpers.php"]
  3. composer dump-autoload

这应该可以做到。:)


答案 2

由于 Helper 方法是静态的,因此您可以将帮助程序类添加到别名中,就像 Facade 一样,如下所示:config/app

'aliases' => [
    //'dateHelper'=> 'App\Helpers\DateHelper', //for Laravel 5.0
    'dateHelper'=> App\Helpers\DateHelper::class, //for Laravel 5.1
] 

然后稍后在您的视图中:

{{dateHelper::dateFormat1($user->created_at)}}

但是,如果您也在寻找一种无需帮助器类即可执行此操作的方法。您可以考虑在模型中使用赋值器和追加器:

class User extends Model{
   protected $fillable = [
     'date'
   ];

   protected $appends = [
     'date_format_two'
   ];


   public function getDateAttribute($value){
        $dt = new DateTime($value);
        return $dt->format("m/d/y"); // 10/27/2014
   }

    //date
    public function getDateFormatTwoAttribute($value){
        $dt = new DateTime($value);
        return $this->attributes['date_format_two'] = $dt->format("m, d ,y"); // 10,27,2014
    }
} 

以后你可以做

$user = User::find(1);

{{$user->date}}; 
{{$user->date_format_two}}; 

推荐