在 php Laravel 5 中创建自定义辅助函数的最佳做法是什么?
What is the best practice to create a custom helper function in php Laravel 5?
我有
默认 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
}
}
}
我要
能够在我的 blade 视图中像
一样调用它
DateHelper::dateFormat1($user->created_at)
我不确定下一步该做什么。
在 php Laravel 5 中创建自定义辅助函数的最佳做法是什么?
- 在您的
app/Http
目录中,创建一个 helpers.php
文件并添加您的函数。
- 在
composer.json
内,在 autoload
块中,添加 "files": ["app/Http/helpers.php"]
.
- 运行
composer dump-autoload
应该可以了。 :)
由于您的 Helper 方法是静态的,您可以将您的助手 class 添加到 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)}}
但是,如果您也在寻找一种无需助手即可完成此操作的方法 class。您可以考虑在您的模型中使用 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}};
我有
默认 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
}
}
}
我要
能够在我的 blade 视图中像
一样调用它DateHelper::dateFormat1($user->created_at)
我不确定下一步该做什么。
在 php Laravel 5 中创建自定义辅助函数的最佳做法是什么?
- 在您的
app/Http
目录中,创建一个helpers.php
文件并添加您的函数。 - 在
composer.json
内,在autoload
块中,添加"files": ["app/Http/helpers.php"]
. - 运行
composer dump-autoload
应该可以了。 :)
由于您的 Helper 方法是静态的,您可以将您的助手 class 添加到 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)}}
但是,如果您也在寻找一种无需助手即可完成此操作的方法 class。您可以考虑在您的模型中使用 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}};