laravel - Laravel 8:如何在现有数据库中检索一对一关系的数据?
问题描述
我在以一对一的关系检索数据时遇到了一些问题。我有这个现有的表,我想从 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');
}
推荐阅读
- php - 创建时间线 Laravel
- django - 是否可以从我的数据集中仅预测一行?
- c++ - 函数中的静态数据何时销毁
- css - 如何将 css 框架类分配给裸 HTML 元素?
- c++ - openni2中骨骼关节的数据集提取
- android - 如何在 Android 中(以编程方式)发现我的应用程序的 CPU 使用率?
- javascript - 关于开发 n 对 n webRTC 聊天的建议
- java - 如何将文本从一个控制器的标签发送和应用到另一个控制器的标签?
- laravel - 如何使用 Laravel IMAP 接收邮箱?
- r - 在 ggplot2 中为 geom_label 设置“基本大小”,以便最小值仍然可读