FFF*_*FFF 0 php laravel eloquent eloquent-relationship
我在Laravel Eloquent中有两个表:
UserCategory:
id | user | category
Run Code Online (Sandbox Code Playgroud)
和
Category:
id | name
Run Code Online (Sandbox Code Playgroud)
UserCategories与类别低谷所属到:
class UserCategory extends Model
{
public function category()
{
return $this->belongsTo('App\Category', 'category');
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试获取带有类别的UserCategories时,我得到了整数值(而不是Category模型)
$categories = [];
$userCategory = UserCategory::where('user', $user->id)->with('category')->get();
foreach($userCategory as $item) {
$categories[] = $item->category->name;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试获取类别名称时,看到第二个错误:
试图获取非对象的属性“名称”
奇怪的是,当我使用时,dd($item)我看到$ item与Category对象具有正确的关系,但是 dd($item->category)返回整数值(类别ID)而不是类别模型。
您的姓名冲突。您既有category专栏,也有category关系。通过说出$item->category它为您显示的category列值。尝试将关系名称更改为其他名称,然后查看是否可行。
最佳做法是使用列名称category_id,但是如果在您的情况下更改列名称不可行,则关系名称也将起作用。