如果我想在我的模特身上使用这个特性,在哪里创建文件
如果我想在里面有这个trait,这个文件应该是什么样子:
trait FormatDates
{
protected $newDateFormat = 'd.m.Y H:i';
// save the date in UTC format in DB table
public function setCreatedAtAttribute($date){
$this->attributes['created_at'] = Carbon::parse($date);
}
// convert the UTC format to my format
public function getCreatedAtAttribute($date){
return Carbon::parse($date)->format($this->newDateFormat);
}
// save the date in UTC format in DB table
public function setUpdatedAtAttribute($date){
$this->attributes['updated_at'] = Carbon::parse($date);
}
// convert the UTC format to my format
public function getUpdatedAtAttribute($date){
return Carbon::parse($date)->format($this->newDateFormat);
}
// save the date in UTC format in DB table
public function setDeletedAtAttribute($date){
$this->attributes['deleted_at'] = Carbon::parse($date);
}
// convert the UTC format to my format
public function getDeletedAtAttribute($date){
return Carbon::parse($date)->format($this->newDateFormat);
}
}
以及如何将其应用于例如用户模型类.
3条答案
按热度按时间cvxl0en21#
好吧,laravel遵循
PSR-4
,所以你应该把你的特性放在:app/Traits
然后,你需要确保你的trait命名为该路径,所以放置:
在
trait
的顶部然后确保在保存文件时,文件名与trait名称匹配。因此,如果trait名为
FormatDates
,则需要将文件保存为FormatDates.php
然后在你的User模型中“使用”它,方法是:
位于模型的顶部,但低于
namespace
然后加上:
就在类内部,所以对于你的User模型,假设你使用的是laravel默认值,你会得到:
记得把自动装弹机扔掉
composer dump-autoload
wfypjpf42#
要通过命令创建trait,我这样做:
然后在app/Console/Commands中有此命令
它将从Command扩展创建此命令,但您必须将其更改为用于创建Class的GeneratorCommand,因此改为:
你应该有这个:
然后,delete __construct()和handle()方法,因为你不需要它们。
你需要在app/Console/Commands/stubs中创建一个名为traits.stub的文件,它将成为你的trait的基础:
代码应该是这样的:
在所有这些之后,你可以用这个命令创建一个trait:
v7pvogib3#
使用这个包,你可以创建创建仓库,仓库接口,服务,特质形式的命令行使用php工匠命令。
对于创建trait
Git仓库:https://github.com/theanik/laravel-more-command