Laravel 8: 如何在现有数据库中检索一对一关系的数据?

Laravel 8: how to retrieve data of a one to one relationship in existing database?

我在一对一关系中检索数据时遇到一些问题。 我有这个现有的 Table,我想从 rfp_details 中检索数据。 这是我的代码

//rfpmain model
protected $table = 'accounting.request_for_payment';
public function rfpDetail(){
    return $this->hasOne(RfpDetail::class);
}


//rfp detail model
protected $table = 'accounting.rfp_details';
public function rfpMain(){
    return $this->belongsTo(RfpMain::class);
}

//rfp controller
public function show($id)
{
    $rfpMain = RfpMain::findOrFail($id);
    $rd = $rfpMain->rfpDetails;
    dd($rd);
}

下面是我现有数据库的结构

你需要在你的关系中定义外键,因为如果你不能定义它,那么它将采用默认值,这在你的情况下是不同的。

您需要从

替换
public function rfpDetail(){
    return $this->hasOne(RfpDetail::class);
}

public function rfpDetail(){
    return $this->hasOne(RfpDetail::class,'rfpid');
}