[英]How to return multiple relationships with Laravel Eloquent?
我有一個名為users
的表。 每個用戶都有不同的東西:
我已經為上述“事物”中的每一個創建了一個表格。 類似如下:
1 | United States
2 | United Kingdom
3 | Australia
4 | Canada
5 | Italy
等等...
我將這些值存儲在users表中,如下所示:
ID | Country | Device | Computer | Category |
---|---------|--------|----------|----------|
1 | 3 | 2 | 6 | 2 |
2 | 4 | 3 | 9 | 1 |
等等...
現在,上述每個數字都與相應表格的ID相關聯。
我想要的是做一個Eloquent Query並搜索所有users
並從他們的幫助表中“替換”他們相應的值。
我正在考慮為users
表中的每個事情做一個hasOne()
關系,但后來我不確定如何立即獲取/調用它們。
有人可以幫我解決這個問題嗎?
$model = Model::with('relatedModel', 'relatedModelTwo')->get();
所以在你的情況下,它可能是這樣的。 如果您只想與user
返回一個關系,請刪除其他關系。
$user = User::with('country', 'Device', 'Computer', 'Category')->get();
當您使用dd($user)
,您應該在relations
數組屬性中看到相關的模型。
要從那里訪問關系的屬性,它就是簡單的
$user->device->deviceAttribute
編輯評論:
Eloquent將假設外鍵使用Model名稱。 因此,如果您的user
表具有id
列,則假定device
表上將有一個名為user_id
的列。 如果你這樣做了,那么你就完成了,不需要做任何事情。
如果您將列命名為將模型與其他內容相關聯,則需要將其作為關系方法中的第二個參數傳遞。
public function device()
{
return $this->hasOne('App\Device', 'foreign_key_here',);
}
相反,如果您想獲取設備所屬的用戶,Eloquent將嘗試將設備表上的user_id
列與用戶表上的id
列進行匹配。 和以前一樣,如果您使用不同的列來關聯它們,請將外鍵聲明為第二個參數。
public function user()
{
return $this->belongsTo('App\User', 'foreign_key_here',);
}
你正在尋找這個: $books = App\\Book::with('author', 'publisher')->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.