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

时间:2015-06-12 13:21:33

标签: php laravel laravel-5 view-helpers

我有

默认 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中创建自定义帮助函数的最佳做法是什么?

2 个答案:

答案 0 :(得分:17)

  1. describe('Web Service', function () { describe('-> endpoint', function() { describe('-> create', function() { var response = null; beforeEach(function(done) { // execute a call to the web service here if (done) { done(); } }); it('should run correctly', function(done) { if (done) { done(); } }); }); }); }); 目录中,创建一个app/Http文件并添加您的功能。
  2. helpers.php内的composer.json区块中,添加autoload
  3. 运行"files": ["app/Http/helpers.php"]
  4. 应该这样做。 :)

答案 1 :(得分:13)

由于您的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)}}

但是,如果您还在寻找一种没有辅助类的方法。您可以考虑在模型中使用Mutators和Appends:

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}};