当前位置: 首页 > 知识库问答 >
问题:

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

薄鸿远
2023-03-14

默认created_at日期保持打印为MySQL格式:2015-06-12 09:01:26。我想把它打印成我自己的方式,就像12/2/2017,以及将来的其他格式。

一个名为DataHelper.php的文件,并将其存储在/app/Helper/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个答案

严远
2023-03-14

由于您的Helper方法是静态的,所以您可以像Facade一样将Helper类添加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}}; 
于鹏
2023-03-14
  1. 在你的app/Http目录中,创建一个helpers.php文件并添加你的函数。
  2. composer.json中,在autoload块中,添加"file":["app/Http/helpers.php"]
  3. 运行作曲家转储-自动加载

应该可以了

 类似资料:
  • 问题内容: 我想创建辅助函数,以避免在Laravel 5的视图之间重复代码: view.blade.php 它们基本上是文本格式化功能。我在哪里以及如何使用这些功能创建文件? 问题答案: 在您的应用文件夹中创建一个文件,并使用composer加载它: 将其添加到文件后,运行以下命令: 如果您不喜欢将文件保留在目录中(因为它不是PSR-4命名空间的类文件),则可以执行网站的操作:将文件存储在boot

  • 我想创建helper函数,以避免在Laravel 5中的视图之间重复代码: view.blade.php 它们基本上是文本格式化函数。我可以在哪里以及如何用这些函数创建一个文件?

  • 我已经遵循了在PHP Laravel 5中创建自定义助手函数的最佳实践是什么? 这个问题的两个答案帮助我在laravel 5.1中创建自定义静态类。因为它是一个静态类。提前谢谢你。

  • 我想创建一对多的映射,就像Post有很多评论一样。我有两种添加评论的解决方案。第一种解决方案是为评论创建一个存储库,第二种解决方案是使用PostRepository并获取post并将评论添加到帖子中。每个解决方案都有自己的挑战。 在第一种解决方案中,为每个实体创建存储库会过多地增加存储库的数量,并且基于DDD,应该为Aggregate Roots创建存储库。 在第二个解决方案中,存在性能问题。若要

  • 我想创建帮助函数以避免在Laravel中的视图之间重复代码。例如: 看法刀身php 它们基本上是文本格式函数。我应该如何定义全局可用的助手函数,如fooFormatText()?

  • 问题内容: 我刚开始学习Go,并通读现有代码以学习“其他人的做法”。在这种情况下,遍历使用go“工作区”,尤其是与项目依赖关系有关的地方。 在处理各种Go项目时,使用一个或多个Go工作区(即$ GOPATH的定义)的常见(或存在)最佳实践是什么?我应该期望有一个类似于我所有项目的中央代码存储库的Go工作区,还是在我处理这些项目时都明确将其分解并设置$ GOPATH(有点像python) virtu