2017-02-28 24 views
2

我有一個表abilities,它有一些條目(對不起,我不知道該怎麼做):Laravel - 通過pluck()獲取的集合中的格式化字符串值

-id|name 
-1|create_user 
-2|delete_user 
-3|ban_user 

右傾O,當我運行下面的代碼:

$abilities = App\Ability::all()->pluck('name','id') 

我得到鼓搗以下的輸出:

Illuminate\Support\Collection {#861 
all: [ 
    1 => "create_user", 
    2 => "delete_user", 
    3 => "ban_user", 
], 

}

我希望它看起來像這樣:1=>"Create User" ...即。下劃線替換爲空格,並且兩個詞都大寫。我該如何解決這個問題?我正在嘗試這個觀點。

回答

4

您可以定義an accessor

public function getModifiedNameAttribute($value) 
{ 
    return ucfirst(str_replace('_', ' ', $value)); 
} 

並使用它:

$abilities = App\Ability::pluck('modified_name', 'id'); 
+1

這是好的,但對於越來越像'創建用戶',最好使用'return ucwords();' –

0

您可以處理這個在你的模型本身像下面

 /** 
    * @return string 
    */ 
    public function getNameAttribute() 
    { 
     return ucwords(str_replace('_', ' ', $this->name)); 
    }