我的模型看起来像这样:
奖励获奖模式:
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 */
}
}
答案 0 :(得分:0)
我可以通过app()->User
访问用户服务,这是最终结果:
public function getReadableDateAttribute(){
return app()->User->dateTime($this->attributes['created_at'])->readableDate;
}