Laravel Eloquent 与 3 Table 的关系

Laravel Eloquent relationships with 3 Table

Laravel 3 Table

table_user

table_barang

table_statusbarang

我的代码用户模型:

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 可以匹配表中的主键和外键。

这行得通。 谢谢