2016-02-26 65 views
0

我有一个模型,它看起来是这样的:获取服务的附加属性

奖励挣型号:

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

是'$ user-> r eadable_date'工作? – ceejayoz

+0

'$ user-> readable_date'不是一个选项。 –

+0

我想要做的是在用户保存的时区格式化来自数据库的值 –

回答

0

我能够获得通过在这里做app()->User用户服务是最终的结果:

public function getReadableDateAttribute(){ 
    return app()->User->dateTime($this->attributes['created_at'])->readableDate; 
}