我有3个表格(产品,产品详细信息,贷款报告)。
我想在贷款报告表中显示产品类别。产品表与产品明细表具有一对多关系,产品详细表与贷方报告表具有一对多关系。
id
product_categories
id
product_name
id
date
amount
我已使用此代码显示它,
$data = DB::table('loan_reports')
->join('product_details', 'loan_reports.product_details_id', '=', 'product_details.id')
->join('products', 'product_details.products_id', '=', 'products.id')
->get();
我想用雄辩的orm来做,但是总是会出错。请帮助我!
我要显示的列大致是这样
| date | product_categories | product_name | amount |
我得到的错误如下:
试图获取非对象的属性'product_name'
您可能想要检查“有很多通过”的关系:
https://laravel.com/docs/5.8/eloquent-relationships#has-many-through
在ProductDetails模型中,创建关系。
public function product_info()
{
return $this->belongsTo('App\Models\Product','id','products_id');
}
public function loan_reports()
{
return $this->hasOne('App\Models\LoanReports','product_details_id','id');
}
使用检索结果
$product_details = ProductDetails::get();
foreach($product_details as $product_details)
{
echo $product_details->product_categories;
if(isset($product_details->product_info))
{
echo $product_details->product_info->product_name;
}
if(isset($product_details->loan_reports))
{
echo $product_details->loan_reports->date;
echo $product_details->loan_reports->amount;
}
}