Laravel - oneToMany 返回未定义 属性
Laravel - oneToMany returning Undefined property
我刚刚在所有帖子中搜索了这个问题,但我找不到答案。
我有 3 个表:用户 |类别 |具有以下模型的部门:
User.php
public function categorys(){
return $this->hasMany('Category');
}
Category.php
public function user(){
return $this->belongsTo('User');
}
public function sectors(){
return $this->hasMany('Sector');
}
Sector.php
public function category(){
return $this->belongsTo('Category');
}
Tables
- 用户:
- 身份证号,姓名
- 类别:
- id,name,user_id(fk)
- 部门:
- id,name,category_id(fk)
我想在视图中打印来自经过身份验证的用户的所有扇区,如下所示:
$user = new User;
$user = Auth::user();
$sectors = $user->categorys->sectors;
并在视图中的 $sectors 变量中使用它
@foreach($sectors as $sector)
{{ $sector->id }}
{{ $sector->name }}
@endforeach
但是我得到这个错误:
Undefined property: Illuminate\Database\Eloquent\Collection::$sectors
需要帮助!谢谢
BR
您可能忘记在文章中提及它,或者 categorys
table.
中缺少 sector_id
字段
根据您的数据库结构,table categorys
到 table sectors
之间没有外键
正如我之前提到的,这里是上述问题的答案。
hasmanythought 关系是关联和轻松查询 3 个表的正确方法。
For model User.php you need to create the relationship:
public function sectors(){
return $this->hasManyThrough('Sector','Category');
}
Now in your controller you need to do:
$user = new User;
$user = Auth::user();
$sectors = $user->sectors;
#return the view showsectors
return View::make('showsectors')->with('sectors', $sectors);
使用此变量 (sectors) 在您的视图中打印查询结果(来自一个用户的所有扇区的描述),如下所示:
@foreach($sectors as $sector)
{{ $sector->id }}
{{ $sector->description }}
@endforeach
感谢您的帮助。
BR
我刚刚在所有帖子中搜索了这个问题,但我找不到答案。
我有 3 个表:用户 |类别 |具有以下模型的部门:
User.php
public function categorys(){
return $this->hasMany('Category');
}
Category.php
public function user(){
return $this->belongsTo('User');
}
public function sectors(){
return $this->hasMany('Sector');
}
Sector.php
public function category(){
return $this->belongsTo('Category');
}
Tables
- 用户:
- 身份证号,姓名
- 类别:
- id,name,user_id(fk)
- 部门:
- id,name,category_id(fk)
我想在视图中打印来自经过身份验证的用户的所有扇区,如下所示:
$user = new User;
$user = Auth::user();
$sectors = $user->categorys->sectors;
并在视图中的 $sectors 变量中使用它
@foreach($sectors as $sector)
{{ $sector->id }}
{{ $sector->name }}
@endforeach
但是我得到这个错误:
Undefined property: Illuminate\Database\Eloquent\Collection::$sectors
需要帮助!谢谢
BR
您可能忘记在文章中提及它,或者 categorys
table.
sector_id
字段
根据您的数据库结构,table categorys
到 table sectors
正如我之前提到的,这里是上述问题的答案。 hasmanythought 关系是关联和轻松查询 3 个表的正确方法。
For model User.php you need to create the relationship:
public function sectors(){
return $this->hasManyThrough('Sector','Category');
}
Now in your controller you need to do:
$user = new User;
$user = Auth::user();
$sectors = $user->sectors;
#return the view showsectors
return View::make('showsectors')->with('sectors', $sectors);
使用此变量 (sectors) 在您的视图中打印查询结果(来自一个用户的所有扇区的描述),如下所示:
@foreach($sectors as $sector)
{{ $sector->id }}
{{ $sector->description }}
@endforeach
感谢您的帮助。
BR