You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8 如何通过ID关联两张表获取数据并在视图中展示

你的查询条件传参错误:where('asset_id',$asset)这里你传入的是完整的Asset模型对象,数据库匹配的asset_id是数字字段,匹配不到对应数据。

直接修复代码

修改控制器中的查询语句即可:

public function edit(Asset $asset)
{
    // 改为取$asset的id属性作为匹配值
    $phistories = DB::table('phistories')->where('asset_id', $asset->id)->get(); 
    
    return view('assets.editAsset',[
        'asset' => $asset,
        'phistories' => $phistories
    ]);
}

推荐优化方案(用Laravel模型关联更规范)

  1. 先在Asset模型中定义一对多关联:
// app/Models/Asset.php
public function phistories()
{
    return $this->hasMany(Phistory::class);
}
  1. 控制器代码简化为:
public function edit(Asset $asset)
{
    // 预加载关联数据,避免N+1查询问题
    $asset->load('phistories');
    
    return view('assets.editAsset', [
        'asset' => $asset,
        'phistories' => $asset->phistories
    ]);
}

排查验证

如果修改后仍无数据,可以在控制器中加dd($phistories)打印查询结果,确认数据库中对应asset_id是否存在phistories记录即可。

内容的提问来源于stack exchange,提问作者Sue A.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:06:03