获取服务的附加属性
问题描述:
我有一个模型,它看起来是这样的:获取服务的附加属性
奖励挣型号:
:
class RewardsEarnedModel extends BaseModel{
protected $appends = ['readable_date'];
public function getReadableDateAttribute(){
// How do I access the User Service?
return $this->userService->dateTime($this->attributes['created_at'])->readableDate;
}
public function scopeSums($query, User $user, $offset = 0, $limit = 50){
return $query-> /* add items here (snipped) */;
}
}
然后我从我的控制器像这样运行模式奖励控制台:
public function getRewards(Request $request, User $user, $date = null){
$rewards = new RewardsEarnedModel;
$rewards = $rewards->Sums($user);
$sums = $rewards->get()->toArray();
}
我的User
服务等级附有一个Time
特质。在那个特点里有dateTime
的功能,我想从我的getReadableDateAttribute
方法来访问它,但我似乎无法这样做。我可以通过我的User
服务进行访问吗?
用户服务:
namespace App\Services;
class User {
use Time;
}
时间特点:
namespace App\Traits;
trait Time{
public function dateTime($datetime = null){
/* Snipped code */
}
}
答
我能够获得通过在这里做app()->User
用户服务是最终的结果:
public function getReadableDateAttribute(){
return app()->User->dateTime($this->attributes['created_at'])->readableDate;
}
是'$ user-> r eadable_date'工作? – ceejayoz
'$ user-> readable_date'不是一个选项。 –
我想要做的是在用户保存的时区格式化来自数据库的值 –