首页 文章

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

提问于
浏览
18

我有

默认 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)

我不知道下一步该做什么 .

What is the best practice to create a custom helper function in php Laravel 5?

2 回答

  • 13
    • app/Http 目录中,创建 helpers.php 文件并添加功能 .

    • composer.json 内,在 autoload 块中,添加 "files": ["app/Http/helpers.php"] .

    • 运行 composer dump-autoload

    应该这样做 . :)

  • 17

    由于你的Helper方法是静态的,你可以将你的助手类添加到 config/app 别名,就像Facade一样,如下所示:

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

相关问题