Laravel使用预先加载的子表获取列名



我想使用其他父表的子表从profile表中获取数据。

这是表格

概要文件表

id
profile_name

事务表

id
transaction_name

子事务表

id
transaction_id
profile_id

现在我想从事务模型中获取配置文件名称。我尝试在事务模型中有一个Though关系,但返回null

这是我在事务模型中的关系

public function profileName()
{
return $this->hasOneThrough(
Profiler::class,
SubTransaction::class,
'profile_id',
'id',
'id',
'transaction_id',
);
}

这里是我试图从事务控制器

获取
$options = Transaction::with([
'profileName:id,profile_name as profileName',
])
->get();

它返回null,因为我认为你在外键和本地键之间的匹配方面有一点问题。您可以尝试以下代码:

return $this->hasOneThrough(
Profiler::class, //Final model we wish to access
SubTransaction::class, //The name of the intermediate model
'transaction_id', //Foreign key on sub_transaction table
'id', //Foreign key on profile table
'id', //Local key on transaction table
'profile_id', //Local key on sub_transaction table
);

如果有什么问题,请告诉我。

相关内容

  • 没有找到相关文章

最新更新