2017-04-04 205 views
0

有沒有一種簡單的方法可以在JSON響應中返回具有不同屬性名稱的更多對象?Laravel格式化JSON輸出

例如我有一個User模型,它具有屬性name, password, xy,如果我做return User::all();我將返回所有用戶。但是如果我想返回自定義對象的名單,我將返回JSON格式,如:

{ 
    'username' : ... 
    'pass': ... 
    'xyz' : ... 
    'from_related_model' : ... 
} 

所以我將有域的名稱返回不同那麼他們在DB,也重視每一個返回的對象的來自相關模型的屬性。

我不想使用增變器,因爲我只想在一個控制器內像那樣返回。我知道我可以通過foreach遍歷對象,並通過賦值創建一個新對象,並返回合併對象。但有沒有更簡單的方法來做到這一點?

+0

是的。你能否添加一個你如何用foreach來做的例子? –

回答

1

您需要生成要手動返回的對象列表。

例如:如果你想返回一個自定義對象爲每個用戶從你可以做這樣的事情在你的控制器以下數據庫中獲取:

$result = []; 
foreach (User::all() as $user) { 
    $result[] = [ 
    'username' => $user->username, 
    'full_name' => $user->first_name . ' ' . $user->last_name, 
    'xyz' => 5, 
    ]; 
} 

return $result; 

每次返回數組或從控制器方法收集,它會自動轉換爲JSON。