Laravel Eloquent 与 3 Table 的关系
Laravel Eloquent relationships with 3 Table
Laravel 3 Table
table_user
- id
- 名字
table_barang
- id
- iduser
- 名字
- statusbarang_id
table_statusbarang
- id
- 名字
我的代码用户模型:
public function BarangModels()
{
return $this->hasMany(BarangModels::class, 'iduser');
}
我的代码 BarangModel :
public function UserModels()
{
return $this->belongsTo(UserModels::class);
}
public function StatusBarangModels()
{
return $this->hasOne(StatusBarangModels::class, 'idstatusbarang');
}
我的代码 StatusBarangModels:
public function BarangModels()
{
return $this->belongsTo(BarangModels::class);
}
我的代码用户控制器
public function showdetail($id)
{
$value = UserModels::find($id);
return view('user/detailuser', compact('value'));
}
而且,我想 select barangmodels (id, name) statusbarangmodels (name)
谢谢
首先,您需要将 BarangModel 的主键添加为 StatusBarangModels 中的外键,用于您在模型中定义的关系。添加密钥后使用以下代码。
UserModels::with(['BarangModels'=>function($item){
$item->with(['StatusBarangModels'=>function($query){
$query->select('statusbarang_id','name');
}])->select('id','name');
}])->get();
您需要 select 嵌套关系中的外键,以便 eloquent 可以匹配表中的主键和外键。
这行得通。
谢谢
Laravel 3 Table
table_user
- id
- 名字
table_barang
- id
- iduser
- 名字
- statusbarang_id
table_statusbarang
- id
- 名字
我的代码用户模型:
public function BarangModels()
{
return $this->hasMany(BarangModels::class, 'iduser');
}
我的代码 BarangModel :
public function UserModels()
{
return $this->belongsTo(UserModels::class);
}
public function StatusBarangModels()
{
return $this->hasOne(StatusBarangModels::class, 'idstatusbarang');
}
我的代码 StatusBarangModels:
public function BarangModels()
{
return $this->belongsTo(BarangModels::class);
}
我的代码用户控制器
public function showdetail($id)
{
$value = UserModels::find($id);
return view('user/detailuser', compact('value'));
}
而且,我想 select barangmodels (id, name) statusbarangmodels (name) 谢谢
首先,您需要将 BarangModel 的主键添加为 StatusBarangModels 中的外键,用于您在模型中定义的关系。添加密钥后使用以下代码。
UserModels::with(['BarangModels'=>function($item){
$item->with(['StatusBarangModels'=>function($query){
$query->select('statusbarang_id','name');
}])->select('id','name');
}])->get();
您需要 select 嵌套关系中的外键,以便 eloquent 可以匹配表中的主键和外键。
这行得通。 谢谢