2016-02-26 46 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; 
}