2016-02-29 62 views

回答

4

一些搜索後我發現,你只需要你想的屬性添加到$appends陣列在你的口才型號:

protected $appends = ['user']; 

更新:如果在數據庫中存在的屬性,你可以只我們根據下面

David Barker's建議E protected $with= ['user'];然後創建一個訪問爲:

public function getUserAttribute() 
{ 

    return $this->user(); 

} 

這樣,你總是將有可作爲每個崗位的用戶對象:

{ 
    id: 1 
    title: "My Post Title" 
    body: "Some text" 
    created_at: "2-28-2016" 
    user:{ 
      id: 1, 
      name: "john smith", 
      email: "[email protected]" 
     } 
} 
+2

你的使用情況有點奇怪,因爲與'User'的關係會使'$ model-> user'可用於您而無需使用append。另外,當模型轉換爲JSON或轉換爲數組時,如果您已加載該關係,則「user」鍵將存在。如果您始終希望用戶將'protected $ with = ['user'];'添加到模型中。 –

+0

是的,正確的方式我總是要使用'$ model-> user',但我需要有用戶對象,而無需手動要求它另外我不想通過一個循環,我使用它在API中,所以當我顯示文章列表時,我無法獲得這些內容。這樣用戶對象將始終自動爲您提供。 –

+3

不,當你添加'protected $ with = ['user']'時,它會在你獲得模型時自動加載。追加適用於您希望模型中的數據庫中不可用的數據。 –