2016-02-24 75 views
1

我想追加一個值到我的模型,但它沒有被添加。我做錯了什麼嗎?

以下是我定義:

protected $appends = ['hash']; 

public function getHashAttribute(){ 
    return 'test'; 
} 

public function scopeGetDeveloperGames($query, $userid){ 
    return $query 
     ->join('game_info', 'games.game_id', '=', 'game_info.game_id') 
     ->where('games.user_id', $userid) 
     ->orderBy('games.created_at', 'desc')->limit(9); 
} 

當我做一個轉儲,它不會在這裏的結果顯示是調用模式:

$items = GamesModel::select('title', 'games.user_id', 'games.game_id', 'games.created_at', 'icon_large', 'icon_medium', 'icon_small', 'short_description') 
->GetDeveloperGames($userid) 
->get(); 
dd($items); 

回答

4

從docs

一旦將屬性添加到附加列表中,它將包含在模型的數組和JSON形式中。 append數組中的屬性也將遵循模型中配置的可見和隱藏設置。

如果使用指定者()或的toJSON():

$items = GamesModel::select('title', 'games.user_id', 'games.game_id', 'games.created_at', 'icon_large', 'icon_medium', 'icon_small', 'short_description') 
->GetDeveloperGames($userid) 
->get() 
->toArray(); 

這將是可見的。

+0

好吧,我一定錯過了我需要調用'toArray()',但似乎解決它! –