[英]Laravel “with” is not populate related model
我在 Laravel Eloquent 中有兩個表:
UserCategory:
id | user | category
和
Category:
id | name
UserCategories 涉及到 Category 槽belongsTo :
class UserCategory extends Model
{
public function category()
{
return $this->belongsTo('App\Category', 'category');
}
}
但是當我嘗試使用類別獲取 UserCategories 時,我得到了 integer 值(而不是類別模型)
$categories = [];
$userCategory = UserCategory::where('user', $user->id)->with('category')->get();
foreach($userCategory as $item) {
$categories[] = $item->category->name;
}
當我嘗試獲取類別的名稱時,我看到了第二個錯誤:
試圖獲取非對象的屬性“名稱”
奇怪的是,當我使用dd($item)
時,我看到$item與類別 object 有正確的關系,但是dd($item->category)
返回 integer 值(類別 id)而不是類別 Z20F35E6380FDAF946
你有沖突的名字。 您有一個category
列和一個category
關系。 通過說$item->category
它向您顯示category
列值。 嘗試將關系名稱更改為其他名稱,看看是否有效。
最佳實踐是使用category_id
的列名,但如果在您的情況下更改列名不可行,那么關系名稱也可以正常工作。
在此處更改您的關系名稱或 ID 名稱,因為在這里您的關系名稱和列名稱相同
class UserCategory extends Model
{
public function category()
{
return $this->belongsTo(Category::class, 'category');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.